gembin

OSGi JSF Eclipse RCP

 

最新评论

共2页: 1 2 下一页 
re: 美国25大高薪公司 寻道者 2008-08-14 21:58  
月薪?
re: 精品Ajax图书下载 renziming 2008-08-12 17:00  
我想看看《征服Ajax Web2.0开发技术详解试读版》这本书,我是php的初学者,但是公司要求要会用ajax,所以想请楼主次给本,我的邮箱:renziming29@163.com
谢谢楼主!!!
re: 谷歌员工幸福生活(组图) 博学精思慎言笃行 2008-08-01 19:58  
确实是不错,要这些都是自己挣来的就更好了。
re: 精品Ajax图书下载 gembin 2008-07-22 15:55  
@cyber
80多MB怎么发
re: 精品Ajax图书下载 cyber 2008-07-15 16:11  
cyb_nj@163.com
《征服AJAX.LUCENE构建搜索引擎》(pdf)
谢谢!
re: 精品Ajax图书下载[未登录] gembin 2008-07-11 14:39  
@doyowei
挑几个吧,少点,一般说都想要的我都没发,实在太大了
re: 精品Ajax图书下载 doyowei 2008-07-11 11:18  
doyowei@sina.com
哥们这么多email 你能应付的来么??
不会唬人吧。。。。
re: 精品Ajax图书下载 liudong 2008-07-09 10:18  
给我也来一份吧 谢谢 Mystic1987@126.com
re: 百家讲坛-武则天(蒙曼) mp3 幸福 2008-07-06 20:46  
谢谢支持!
re: 刘心武揭秘红楼梦 mp3 法国 2008-07-06 01:18  
好东西经典啊真正的艺术
re: 精品Ajax图书下载[未登录] janet 2008-07-03 23:52  
《Ajax Design Patterns 》(Ajax设计模式)---janethuang83@163.com
re: 精品Ajax图书下载 vieri 2008-06-30 18:12  
都想要,vieri_script@163.com,谢谢
我只是学习
re: MySQL的常用操作 老三 2008-06-24 08:58  
正在用mysql,学习一下
re: Apache Common fileUpload API 详解 岁岁年年 2008-06-18 15:23  
好文章!
re: 精品Ajax图书下载 gembin 2008-06-13 19:50  
@王应天
我这没有源码
re: 精品Ajax图书下载 王应天 2008-06-10 09:57  
@www
楼主有head rush ajax附的源码吗?
我去它的网站上下不能下下来,不知道什么原因。
如果楼主有源码,麻烦发给我一份好吗?
我的E-mail是wangyt@lic.gov.cn谢谢!
@盼回复
http://127.0.0.1:4469/rap?startup=XXXX

Plugin.xml

<extension
point="org.eclipse.rap.ui.entrypoint">
<entrypoint
class="rap.Application"
parameter="XXXX"
id="rap.Application">
</entrypoint>
</extension>
re: 精品Ajax图书下载 www 2008-05-28 16:31  
《Ajax实战》(中文pdf)
《征服Ajax Web2.0开发技术详解试读版》

wgl_suc820@hexun.com
谢谢!!!
@gembin

我参照help,能够生成war并部署到Tomcat容器里,但不知怎么在浏览器里运行。

多谢!

zhugexiao@yfgm.com.cn

@gembin

如何把RAP 变成 WAR。

多谢!

zhugexiao@yfgm.com.cn

re: 刘心武揭秘红楼梦 mp3 ミ飀麓ミ 2008-05-26 23:56  
真是好东西啊!
多谢了
第一张是效果图吧。
re: SWT 自定义控件 fy_kenny 2008-05-22 16:15  
好文章
我还能用什么言语来表达我的内心的那份感动呢?
不会把,四川汶川阿,地球人都知道了
请问怎么去灾区,我是司机\健康\懂救护知识\13190676113,中石油的员工
还真×××复杂!
Web容器中部署RAP
RAP的运行依赖于OSGI框架,而对于现有的JEE Web容器一般都不提供直接支持OSGI的能力。因此部署RAP的过程实际上相当与部署OSGI框架的过程。以下用Eclipse中集成的OSGI框架equinox为例介绍部署过程。

1. 首先需要下载equinox和servlet容器集成的工具包org.eclipse.equinox.servletbridge。可以通过eclipse的cvs站点(http://www.eclipse.org/equinox/server/downloads/servletbridge-anon.psf)下载这个项目集;
2. 针对RAP项目创建一个feature项目(过程同RCP);
3. 根据RAP项目的依赖创建feature项目的插件依赖;
为了让OSGI框架和RAP应用能在应用服务器中部署运行,必须包含如下插件依赖:
必须依赖插件

<plugin
id="org.eclipse.core.commands"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.core.contenttype"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.core.expressions"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.core.jobs"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.core.runtime"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.equinox.app"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.equinox.common"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.equinox.http.registry"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.equinox.http.servlet"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.equinox.http.servletbridge"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.equinox.preferences"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.equinox.registry"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.osgi"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.osgi.services"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.rap.jface"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.rap.rwt"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.rap.ui"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.rap.ui.workbench"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="org.eclipse.update.configurator"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>

版本号必须设置为0.0.0以便于pde工具导出依赖插件的时候能够同步版本号。
4. 在feature项目得根目录创建script(存放构建脚本)文件夹和templates(存放标准Web应用格式文件)文件夹;
5. 在script文件夹下创建一个ant构建文件;
webappBuilder.xml

<?xml version="1.0"?>
<project name="project" default="default">
<description>
Example of a webapplication build script for RAP applications that use
the equinox servlet bridge to run in a servlet container.
</description>

<!-- =================================
target: init
================================= -->
<target name="init">
<property name="proj.dir" value="${basedir}/.." />
<!--
This script assumes that the servlet bridge project is available
in the current workspace. Note: The location is hardcoded and must be
adjusted to your needs.
-->
<property name="servletbridge.dir"
value="D:/RAP/eclipse/workspace/org.eclipse.equinox.servletbridge" />
<!--
On windows be cautious about long file names for ${build.dir}
These long path problems were resolved in JRE 1.5.0_08
-->
<property name="build.dir" value="${proj.dir}/build" />
<property name="templates.dir" value="${proj.dir}/templates" />
<property name="webapp.name" value="xwiki" />
<property name="features" value="rcp.feature" />
<!--
If you are using this script in a head-less build define the following properties:
"ignore.pdeExportFeatures" (available only in the IDE - do the feature export with PDE Build)
"ignore.servletbridge.jar" (if you're compiling or extracting the jar yourself)
-->
</target>

<!-- =================================
target: prepare
================================= -->
<target name="prepare" depends="init">
<delete dir="${build.dir}/${webapp.name}" />
<mkdir dir="${build.dir}/${webapp.name}/WEB-INF/lib" />
</target>

<!-- =================================
target: default
================================= -->
<target name="default"
depends="copyResources, servletbridge.jar, pdeExportFeatures" />

<!-- =================================
target: copyResources
================================= -->
<target name="copyResources" depends="prepare">
<copy todir="${build.dir}/${webapp.name}">
<fileset dir="${templates.dir}" />
</copy>
</target>

<!-- =================================
target: servletbridge.jar
================================= -->
<target name="servletbridge.jar"
depends="prepare"
unless="ignore.servletbridge.jar">
<antcall target="jar-servletbridge.jar" />
<antcall target="copy-servletbridge.jar" />
</target>

<!-- =================================
target: copy-servletbridge.jar
================================= -->
<target name="copy-servletbridge.jar" if="servletbridge.jar-present">
<copy todir="${build.dir}/${webapp.name}/WEB-INF/lib">
<fileset file="${servletbridge.dir}/servletbridge.jar" />
</copy>
</target>

<!-- =================================
target: jar-servletbridge.jar
================================= -->
<target name="jar-servletbridge.jar" unless="servletbridge.jar-present">
<jar destfile="${build.dir}/${webapp.name}/WEB-INF/lib/servletbridge.jar">
<fileset dir="${servletbridge.dir}/bin">
<include name="**/*.class" />
</fileset>
</jar>
</target>

<!-- =================================
target: pdeExportFeatures
================================= -->
<target name="pdeExportFeatures"
depends="prepare"
unless="ignore.pdeExportFeatures">
<!--
Features get built asynchronously but this approach is sometimes convenient.
So that the pde.exportFeatures task is available in the IDE select
"Run in the same JRE as the workspace" from the JRE tab from "Run Ant.."
-->
<pde.exportFeatures features="${features}"
destination="${build.dir}/${webapp.name}/WEB-INF/eclipse"
exportType="directory"
useJARFormat="true"
exportSource="false" />
</target>
</project>

6. 在templates文件夹下创建如下文件结构;

WEB-INF
|--eclipse
| |--configuration
| | |--config.ini
| |--launch.ini
|--web.xml

launch.ini

# Eclipse Runtime Configuration Overrides
# These properties are loaded prior to starting the framework and can also be used to override System Properties
# @null is a special value used to override and clear the framework's copy of a System Property prior to starting the framework
# "*" can be used together with @null to clear System Properties that match a prefix name.

osgi.*=@null
org.osgi.*=@null
eclipse.*=@null

osgi.parentClassloader=app
osgi.contextClassLoaderParent=app

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app id="WebApp">
<servlet id="bridge">
<servlet-name>equinoxbridgeservlet</servlet-name>
<display-name>Equinox Bridge Servlet</display-name>
<description>Equinox Bridge Servlet</description>
<servlet-class>org.eclipse.equinox.servletbridge.BridgeServlet</servlet-class>
<init-param>
<param-name>commandline</param-name>
<param-value>-console</param-value>
</init-param>
<init-param>
<param-name>enableFrameworkControls</param-name>
<param-value>true</param-value>
</init-param>
<!--
org.eclipse.equinox.servletbridge and the Servlet API are exported automatically to the underlying OSGi framework.
The extendedFrameworkExports parameter allows the specification of additional java package exports.
The format is a comma separated list of exports as specified by the "Export-Package" bundle manifest header.
For example: com.mycompany.exports; version=1.0.0, com.mycompany.otherexports; version=1.0.0
-->
<init-param>
<param-name>extendedFrameworkExports</param-name>
<param-value></param-value>
</init-param>

<!--
You can specify your own framework launcher here.
The default is: org.eclipse.equinox.servletbridge.FrameworkLauncher
<init-param>
<param-name>frameworkLauncherClass</param-name>
<param-value>org.eclipse.equinox.servletbridge.FrameworkLauncher</param-value>
</init-param>
-->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>equinoxbridgeservlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<!--
This is required if your application bundles expose JSPs.
-->
<servlet-mapping>
<servlet-name>equinoxbridgeservlet</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
</web-app>

7. 用ant执行script下的构建脚本;


再用Ant执行脚本的时候,应当把JRE标签下的"Run in the same JRE as the workspace"选中,否则PDE工具可能无法导出依赖插件。
8. 编辑configration目录下的config.ini文件,根据项目需要设定bundles,可用如下程序生成后拷贝到config.ini文件中。
ConfigIniCreator.java

/*******************************************************************************
* Copyright (c) 2002-2006 Innoopract Informationssysteme GmbH.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Innoopract Informationssysteme GmbH - initial API and implementation
******************************************************************************/

package org.eclipse.rap.tools;

import java.io.File;


/**
* <p>This tool creates the content of a simple config.ini file.
* Run this after the ANT build scripts (webappBuilder.xml and the
* pde.exportFeatures) have finished. After that replace the content
* of the config.ini file in the build.</p>
*
* <p>Note: this is not meant to be a high end deployment tool or the only
* possibility of how the content of your config.ini should look like if you
* are creating a RAP WAR. This should simplify the task to get
* a minimalistic runtime configuration that works...</p>
*/
public class ConfigIniCreator {

public static void main( final String[] arx ) {
////////////////////////////////////////////////////////////////////////////
// replace this with the absolute path to the plugin directory of
// the deployment build for example
// File file = new File( "C:\\projects\\org.eclipse.rap\\org.eclipse.rap.demo.feature\\build\\rapdemo\\WEB-INF\\eclipse\\plugins" );
File file = new File( "D:\\RAP\\eclipse\\workspace\\rcp.feature\\build\\xwiki\\WEB-INF\\eclipse\\plugins" );
////////////////////////////////////////////////////////////////////////////

String[] list = file.list();
StringBuffer buffer = new StringBuffer();
buffer.append( "#Eclipse Runtime Configuration File\n" );

buffer.append( "osgi.bundles=" );
for( int i = 0; i < list.length; i++ ) {
if( list[ i ].endsWith( ".jar" )
&& !list[ i ].startsWith( "org.eclipse.osgi_" ) )
{
buffer.append( list[ i ] );
if( list[ i ].startsWith( "org.eclipse.equinox.common_" ) ) {
buffer.append( "@2:start" );
} else {
buffer.append( "@start" );
}
if( i + 1 < list.length ) {
buffer.append( "," );
}
}
}
buffer.append( "\n" );
buffer.append( "osgi.bundles.defaultStartLevel=4\n" );

// write the content to the console
System.out.print( buffer );
}
}

在控制台上可看到类似信息:
config.ini

#Eclipse Runtime Configuration File
osgi.bundles=org.eclipse.core.commands_3.3.0.I20070605-0010.jar@start,
org.eclipse.core.contenttype_3.2.100.v20070319.jar@start,
org.eclipse.core.expressions_3.3.0.v20070606-0010.jar@start,
org.eclipse.core.jobs_3.3.0.v20070423.jar@start,
org.eclipse.core.runtime_3.3.100.v20070530.jar@start,
org.eclipse.equinox.app_1.0.0.v20070606.jar@start,
org.eclipse.equinox.common_3.3.0.v20070426.jar@2:start,
org.eclipse.equinox.http.registry_1.0.0.jar@start,
org.eclipse.equinox.http.servletbridge_1.0.0.jar@start,
org.eclipse.equinox.http.servlet_1.0.0.jar@start,
org.eclipse.equinox.preferences_3.2.100.v20070522.jar@start,
org.eclipse.equinox.registry_3.3.0.v20070522.jar@start,
org.eclipse.osgi.services_3.1.200.v20070605.jar@start,
org.eclipse.rap.jface_1.0.0.jar@start,
org.eclipse.rap.rwt_1.0.0.jar@start,
org.eclipse.rap.ui.workbench_1.0.0.jar@start,
org.eclipse.rap.ui_1.0.0.jar@start,
org.eclipse.update.configurator_1.0.0.jar@start,
rcp_1.0.0.jar@start
osgi.bundles.defaultStartLevel=4

9. 构建完成,打包应用(用jar命令归档为一个war文件);
10. 拷贝到Web容器相应的Web应用目录下,或采用Web服务器的部署工具部署。
请问该工程怎么脱离eclipse独立运行呢?
re: 精品Ajax图书下载 gembin 2008-05-12 14:20  
@kerry
无法到达以下收件人:
kerrywu.tw@yahoo.com.tw,时间为 5/12/2008 1:44 PM
电子邮件系统无法传递此邮件,但未报告具体原因。请检查邮件地址,然后重新发送。如果再次失败,请与系统管理员联系。
< host mx1.mail.tw.yahoo.com[203.188.197.9] said: 554 delivery error: dd Sorry your message to kerrywu.tw@yahoo.com.tw cannot be delivered because it is too large. - mta186.mail.tp2.yahoo.com (in reply to end of DATA command)>

请确认Yahoo的邮箱能否接收11MB的收件。。。。。
re: 精品Ajax图书下载 gembin 2008-05-12 13:35  
@thinkfree
具体要哪本,太大了不好发几百MB呢,需要哪个发哪个把
re: 精品Ajax图书下载 kerry 2008-05-11 14:59  
我要Ajax Security
mail:kerrywu.tw@yahoo.com.tw
恩 看上去不错啊!
做的还不错。就是美观上差了点。还是G.ho.st做的好http://g.ho.st有3G的存储空间也是最大的。同时支持FTP上传。还有非常多的在线应用。是个真正的操作系统。
re: 精品Ajax图书下载 thinkfree 2008-05-08 15:27  
thinkfree@sohu.com希望分享你的好书.谢谢
re: 中国移动飞信 gembin 2008-05-06 00:43  
光发短信应该是免费的吧
re: 中国移动飞信 BeanSoft 2008-05-05 17:58  
每月接收短信费用 5 元 发送吧,只要你是从手机上发的,每条1毛(当然最好开通包月短信),那么总费用就是:
5 + 手机发送短信数 × 0.1元 每月。
re: Faces Portlet开发框架初体验[ZHUAN] jeasonzhao 2008-05-05 14:46  
WSAD的臭毛病不少,连IBM自己的人都郁闷,还是忍了
re: CSS框架汇总 王战锋 2008-05-05 11:28  
CSS框架之二 blueprintcss

Features:

* An easily customizable grid
* Sensible typography
* Relative font-sizes everywhere
* A typographic baseline
* An extendable plugin system
* Perfected CSS reset
* A stylesheet for printing
* Compressed version
* No bloat of any kind
re: 精品Ajax图书下载 gembin 2008-05-05 10:54  
@王天桂
已发送
re: CSS框架汇总 jeasonzhao 2008-05-03 23:24  
很强很震撼,自己真浅薄
re: 百家讲坛-武则天(蒙曼) mp3 网友 2008-05-02 19:05  
很好 别删啊
re: 精品Ajax图书下载 王天桂 2008-05-02 10:28  
我要《ajax in action》,我的Email是: wtg2003080310@163.com,谢谢楼主
asdf sadf 2008-04-29 17:03  
<a href="fa q">Hadoop--海量文件的分布式计算处理方案</a>
asdf sadf 2008-04-29 17:02  
re: Hadoop--海量文件的分布式计算处理方案
re: 精品Ajax图书下载 gembin 2008-04-28 17:14  
@笨笨 @涟漪
已发送

re: 精品Ajax图书下载 涟漪 2008-04-27 10:05  
我需要《征服Ajax Web2.0开发技术详解试读版》这本书,能发到我邮箱吗?非常感谢!
邮箱是nihaitaoaiwo@163.com
re: 精品Ajax图书下载[未登录] 笨笨 2008-04-25 23:37  
我也想要,Bulletproof Ajax最先!
phpzht@gmail.com
共2页: 1 2 下一页 

导航

统计

常用链接

留言簿(2)

随笔分类(213)

随笔档案(205)

文章档案(1)

新闻档案(1)

相册

收藏夹(1)

Favorite Links

最新随笔

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜

60天内阅读排行