Sun java studio creator+Sun java application server 8.2+ Jbuilder2005+Jboss4.0.4+Ms sql server2000开发部署要领
2006-10-12 14:20
495 查看
这是花了我进一个礼拜的时间搞出来的,感觉还是很爽的。
在Sun java studio creator2.1(以下简称Sjsc)中开发表现层,使用Jbuilder2005 (以下简称JB)+ Jboss4.04(以下简称Jboss)开发Ejb(Session Beans & Entity Beans),最后系统部署到Jboss4.0.4上。
由于Sjsc中无法连接Jboss,所以需要将Ejb部署到Sun java application server8.2(以下简称Appserver),Sjsc中添加Session Beans并调用其方法。
这样做的目的是充分利用Sjsc开发表现层快速的优点,以及JB开发Ejb快速的优点。
一、 JB+Jboss开发Ejb
由于大多数JB的书籍中都有介绍,这里不再赘述。但是要注意修改jbosscmp-jdbc.xml
文件中的<datasource>为java:/MSSQLDS,ejb-modeler-schema.xml中的< schema-connection-node >的name值为"java:/MSSQLDS"。
注意:表名及字段中不能带有下划线,在Jboss下部署的实体bean能够找到对应关系,但部署到Appserver后,生成的表名称会与原来的差一个下划线。
下面主要谈一下部署到Appserver上时需要的sun-ejb-jar.xml修改。
开发比测试完Ejb后,打成jar包,将ejbmodule_dir / META-INF下jboss.xml文件复制一份并修改文件名为sun-ejb-jar.xml,打开此xml文件,按如下方式修改(需要修改的地方我使用“$......$需要修改”进行标注,中间部分是需要修改的)
$<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 8.1 EJB 2.1//EN" "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_2_1-1.dtd"> $需要修改
$<sun-ejb-jar> $需要修改
<enterprise-beans>
$<ejb>$需要修改
<ejb-name>Test</ejb-name>
$<jndi-name>ejb/Test</jndi-name>
<pass-by-reference>false</pass-by-reference>
<cmp/>
<ior-security-config>
<transport-config>
<integrity>SUPPORTED</integrity>
<confidentiality>SUPPORTED</confidentiality>
<establish-trust-in-target>SUPPORTED</establish-trust-in-target>
<establish-trust-in-client>SUPPORTED</establish-trust-in-client>
</transport-config>
<as-context>
<auth-method>USERNAME_PASSWORD</auth-method>
<realm>default</realm>
<required>false</required>
</as-context>
<sas-context>
<caller-propagation>SUPPORTED</caller-propagation>
</sas-context>
</ior-security-config>
<is-read-only-bean>false</is-read-only-bean>
<gen-classes/>
</ejb>$需要修改
$<ejb>$需要修改
<ejb-name>TestSession</ejb-name>
<jndi-name>ejb/TestSession</jndi-name>
$</ejb>
<cmp-resource> 这一部分是Entity bens连接数据库的信息,在后边的连接池部分需要使用<jndi-name>项、<database-vendor-name>项
<jndi-name>jdbc/MSSQLDS</jndi-name>
<create-tables-at-deploy>false</create-tables-at-deploy>
<drop-tables-at-undeploy>false</drop-tables-at-undeploy>
<database-vendor-name>mssql</database-vendor-name>
<!--<database-vendor-name>pointbase</database-vendor-name>-->
</cmp-resource>$需要修改
</enterprise-beans>
$</sun-ejb-jar>$需要修改
修改完成后,在JB下重新打成jar包。
二、 部署Ejb到Appserver
1、创建连接池
启动Appserver,并登陆控制台,资源->jdbc->连接池下新增,数据源类输入:
com.sun.sql.jdbcx.sqlserver.SQLServerDataSource(这是sun自己的驱动,不用ms sql的驱动,在appserver_dir/lib有这三个文件smbase.jar,smsqlserver.jar,smutil.jar),资源类型选择 javax.sql.DataSource,添加如下四个属性:user (ms sql server的用户名),password(密码),url(jdbc:microsoft:sqlserver://#host:1433;DatabaseName=#database;SelectMethod=cursor),serverName(数据库服务器名),保存属性。
此部分参考http://docs.sun.com/app/docs/doc/819-2556/6n4rap8sl?a=view#beana
2、创建数据源
资源->jdbc->jdbc资源新增一项,名称为jdbc/MSSQLDS(如果修改的话,要相应的修改Entity beans中
4000
的cmp-resource项下的jndi-name),选择连接池为第一步创建的连接池。
3、ping连接池
重新启动Appserver服务器,选择上面创建的连接池,点击ping,现在应该显示“ping成功”,如果出现问题,最好查阅一下server.log,看一下具体是什么错误。
4、部署Ejb
应用程序->ejb模块,点击部署,选择ejb的jar包,所有想全部默认,下一步,如果没有问题的话,ejb应该部署成功,如果有错误,参见错误信息处理,一般这一步出问题最多的是在sun –ejb-jar.xml文件中,例如<ejb><ejb>后面漏掉结束符/等。
三、 Sjsc中调用Ejb进行页面开发
1、 在Sjsc中添加session bean
由于Sjsc中不能直接调用entity bean,所以实现的方法都应该写到session bean中。
服务器->Enterprise java bean,右键单击,选择添加会话ejb集,此处需要注意修改RMI-IIOP端口为24700,添加客户端jar(如果在Appserver下ejb部署成功的话,在Appserver_dir/domains/creator/applications/j2ee-modules/ejbMoudle下自动生成客户端jar文件,我机器上使用的是与Sjsc捆绑的Appserver,如果单独安装的Appserver的话,此文件应该在Appserver_dir/domains/domain1/applications/j2ee-modules/ejbMoudle下),点击下一步。
现在需要配置ejb的方法的参数,定义输入参数及输出参数即可。此处目前我还有一个问题没有解决,如果ejb的方法返回arraylist的话,定义完元素类后一直提示错误,我的元素类定义的应该没有问题。例如:session bean中的getAll()方法返回 TestDetails的Arraylist,在这里定义了元素类为test.TestDetails,会提示出错了。我现在测试的时候将getAll()直接返回TestDetails[]来解决这个问题,如果哪位碰到并解决了此问题,希望告知,谢谢!
配置完参数后,就完成了session bean的添加工作
2、 在页面中调用session bean方法
拖拽组件面板上的基本组件中表放到页面上,然后将在服务器栏上选择刚才添加的ejb
的getAll()方法放到页面的表上,表的外围为蓝色时松开鼠标,现在就可以运行测试了。
此部分参照http://developers.sun.com/prodtech/javatools/jscreator/learning/bookshelf/index.jsp
《Java Studio Creator Field Guide》的第11章 using ejb components
[align=left]上面说的元素类的问题,我按照11.5 Adding EJBs to Creator 这一节的例子来做时也是过不去。[/align]
[align=left]Table 11.3 EJB Method Configuration for LoanEJB[/align]
[align=left]Method Name Element Class Parameter Name[/align]
[align=left]annualAmortTable asg.LoanEJB.PaymentVO loanVO[/align]
[align=left]monthlyAmortTable asg.LoanEJB.PaymentVO loanVO[/align]
[align=left]monthlyPayment not applicable loanVO[/align]
[align=left]大家可以试一下。[/align]
至此,JB下开发的ejb在Jscs下调用成功!
遗留的两个问题是:
1) session bean的方法返回为ArrayList时,在Jscs下添加元素类的时候如何处理?
2) 表名或者表中字段如果带有下划线的话,在JB中开发过程中自动将下划线去掉,其对应关系在jbosscmp-jdbc.xml文件中,部署到Appserver时,Appserver自动生成一个sun-cmp-mappings.xml,这里面的下划线没有了,造成字段或者表名错误,这个问题难道只能用字段或者表名中不带下划线的方法解决?
四、将Jscs开发的前端的war包部署到Jboss下
继续研究
(待续)
在Sun java studio creator2.1(以下简称Sjsc)中开发表现层,使用Jbuilder2005 (以下简称JB)+ Jboss4.04(以下简称Jboss)开发Ejb(Session Beans & Entity Beans),最后系统部署到Jboss4.0.4上。
由于Sjsc中无法连接Jboss,所以需要将Ejb部署到Sun java application server8.2(以下简称Appserver),Sjsc中添加Session Beans并调用其方法。
这样做的目的是充分利用Sjsc开发表现层快速的优点,以及JB开发Ejb快速的优点。
一、 JB+Jboss开发Ejb
由于大多数JB的书籍中都有介绍,这里不再赘述。但是要注意修改jbosscmp-jdbc.xml
文件中的<datasource>为java:/MSSQLDS,ejb-modeler-schema.xml中的< schema-connection-node >的name值为"java:/MSSQLDS"。
注意:表名及字段中不能带有下划线,在Jboss下部署的实体bean能够找到对应关系,但部署到Appserver后,生成的表名称会与原来的差一个下划线。
下面主要谈一下部署到Appserver上时需要的sun-ejb-jar.xml修改。
开发比测试完Ejb后,打成jar包,将ejbmodule_dir / META-INF下jboss.xml文件复制一份并修改文件名为sun-ejb-jar.xml,打开此xml文件,按如下方式修改(需要修改的地方我使用“$......$需要修改”进行标注,中间部分是需要修改的)
$<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 8.1 EJB 2.1//EN" "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_2_1-1.dtd"> $需要修改
$<sun-ejb-jar> $需要修改
<enterprise-beans>
$<ejb>$需要修改
<ejb-name>Test</ejb-name>
$<jndi-name>ejb/Test</jndi-name>
<pass-by-reference>false</pass-by-reference>
<cmp/>
<ior-security-config>
<transport-config>
<integrity>SUPPORTED</integrity>
<confidentiality>SUPPORTED</confidentiality>
<establish-trust-in-target>SUPPORTED</establish-trust-in-target>
<establish-trust-in-client>SUPPORTED</establish-trust-in-client>
</transport-config>
<as-context>
<auth-method>USERNAME_PASSWORD</auth-method>
<realm>default</realm>
<required>false</required>
</as-context>
<sas-context>
<caller-propagation>SUPPORTED</caller-propagation>
</sas-context>
</ior-security-config>
<is-read-only-bean>false</is-read-only-bean>
<gen-classes/>
</ejb>$需要修改
$<ejb>$需要修改
<ejb-name>TestSession</ejb-name>
<jndi-name>ejb/TestSession</jndi-name>
$</ejb>
<cmp-resource> 这一部分是Entity bens连接数据库的信息,在后边的连接池部分需要使用<jndi-name>项、<database-vendor-name>项
<jndi-name>jdbc/MSSQLDS</jndi-name>
<create-tables-at-deploy>false</create-tables-at-deploy>
<drop-tables-at-undeploy>false</drop-tables-at-undeploy>
<database-vendor-name>mssql</database-vendor-name>
<!--<database-vendor-name>pointbase</database-vendor-name>-->
</cmp-resource>$需要修改
</enterprise-beans>
$</sun-ejb-jar>$需要修改
修改完成后,在JB下重新打成jar包。
二、 部署Ejb到Appserver
1、创建连接池
启动Appserver,并登陆控制台,资源->jdbc->连接池下新增,数据源类输入:
com.sun.sql.jdbcx.sqlserver.SQLServerDataSource(这是sun自己的驱动,不用ms sql的驱动,在appserver_dir/lib有这三个文件smbase.jar,smsqlserver.jar,smutil.jar),资源类型选择 javax.sql.DataSource,添加如下四个属性:user (ms sql server的用户名),password(密码),url(jdbc:microsoft:sqlserver://#host:1433;DatabaseName=#database;SelectMethod=cursor),serverName(数据库服务器名),保存属性。
此部分参考http://docs.sun.com/app/docs/doc/819-2556/6n4rap8sl?a=view#beana
2、创建数据源
资源->jdbc->jdbc资源新增一项,名称为jdbc/MSSQLDS(如果修改的话,要相应的修改Entity beans中
4000
的cmp-resource项下的jndi-name),选择连接池为第一步创建的连接池。
3、ping连接池
重新启动Appserver服务器,选择上面创建的连接池,点击ping,现在应该显示“ping成功”,如果出现问题,最好查阅一下server.log,看一下具体是什么错误。
4、部署Ejb
应用程序->ejb模块,点击部署,选择ejb的jar包,所有想全部默认,下一步,如果没有问题的话,ejb应该部署成功,如果有错误,参见错误信息处理,一般这一步出问题最多的是在sun –ejb-jar.xml文件中,例如<ejb><ejb>后面漏掉结束符/等。
三、 Sjsc中调用Ejb进行页面开发
1、 在Sjsc中添加session bean
由于Sjsc中不能直接调用entity bean,所以实现的方法都应该写到session bean中。
服务器->Enterprise java bean,右键单击,选择添加会话ejb集,此处需要注意修改RMI-IIOP端口为24700,添加客户端jar(如果在Appserver下ejb部署成功的话,在Appserver_dir/domains/creator/applications/j2ee-modules/ejbMoudle下自动生成客户端jar文件,我机器上使用的是与Sjsc捆绑的Appserver,如果单独安装的Appserver的话,此文件应该在Appserver_dir/domains/domain1/applications/j2ee-modules/ejbMoudle下),点击下一步。
现在需要配置ejb的方法的参数,定义输入参数及输出参数即可。此处目前我还有一个问题没有解决,如果ejb的方法返回arraylist的话,定义完元素类后一直提示错误,我的元素类定义的应该没有问题。例如:session bean中的getAll()方法返回 TestDetails的Arraylist,在这里定义了元素类为test.TestDetails,会提示出错了。我现在测试的时候将getAll()直接返回TestDetails[]来解决这个问题,如果哪位碰到并解决了此问题,希望告知,谢谢!
配置完参数后,就完成了session bean的添加工作
2、 在页面中调用session bean方法
拖拽组件面板上的基本组件中表放到页面上,然后将在服务器栏上选择刚才添加的ejb
的getAll()方法放到页面的表上,表的外围为蓝色时松开鼠标,现在就可以运行测试了。
此部分参照http://developers.sun.com/prodtech/javatools/jscreator/learning/bookshelf/index.jsp
《Java Studio Creator Field Guide》的第11章 using ejb components
[align=left]上面说的元素类的问题,我按照11.5 Adding EJBs to Creator 这一节的例子来做时也是过不去。[/align]
[align=left]Table 11.3 EJB Method Configuration for LoanEJB[/align]
[align=left]Method Name Element Class Parameter Name[/align]
[align=left]annualAmortTable asg.LoanEJB.PaymentVO loanVO[/align]
[align=left]monthlyAmortTable asg.LoanEJB.PaymentVO loanVO[/align]
[align=left]monthlyPayment not applicable loanVO[/align]
[align=left]大家可以试一下。[/align]
至此,JB下开发的ejb在Jscs下调用成功!
遗留的两个问题是:
1) session bean的方法返回为ArrayList时,在Jscs下添加元素类的时候如何处理?
2) 表名或者表中字段如果带有下划线的话,在JB中开发过程中自动将下划线去掉,其对应关系在jbosscmp-jdbc.xml文件中,部署到Appserver时,Appserver自动生成一个sun-cmp-mappings.xml,这里面的下划线没有了,造成字段或者表名错误,这个问题难道只能用字段或者表名中不带下划线的方法解决?
四、将Jscs开发的前端的war包部署到Jboss下
继续研究
(待续)
相关文章推荐
- Sun Java System Application Server Platform Edition 8.2 + 远程服务器管理
- EJB3会话Bean的开发——NetBeans和SunJavaSystemApplicationServer
- Sun Java System Application Server Platform Edition 连接池配置方法
- WebsphereApplicationServerNetworkDeployment V6.0的开发部署中的常见问题(初级)
- 一个Sun Java System Application Server访问MBean信息的示例
- 使用 WebSphere Studio Application Developer 开发 Java 程序: 与 VisualAge for Java 进行比较
- 使用 WebSphere Studio Application Developer 集成版,版本 4.1 开发 Java 消息服务应用程序
- 使用 WebSphere Studio Application Developer 的 WebSphere Portal Server 开发: 第 1 部分:Portal Server 2.1 的动态主题定制
- WebsphereApplicationServerNetworkDeployment V6.0的开发部署中的常见问题(初级)
- 使用 WebSphere Application Server Community Edition 开发和部署 J2EE Web 服务
- EJB3 Application Client——NetBeans和SunJavaSystemApplicationServer
- This absolute uri http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
- exception http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
- 求助!精通Spring 4.x 企业应用开发实战;第二章;测试过程报java.lang.IllegalStateException: Failed to load ApplicationContext
- 如何部署Creator2开发的应用到单独下载安装的sun appserver pe8上!
- Sun发布更精简开发工具Java Studio Creator
- 新品发布:Sun Java System Directory Server Enterprise Edition 6.1(eNew 第二十八期/2007.09)
- 关于java开发如何优雅的部署项目
- 解决 web服务器部署常见问题,server application unavailable 和 程序无法连接数据库 的问题(asp.net 2.0 + oracle9i + winXP)
- 将NetBeans Profiler集成到Sun Java System Web Server 7.0