- 浏览: 63832 次
- 性别:
- 来自: 上海
最新评论
-
_xiao_wei_:
isCurrent、newDatas好熟悉!
操作web_reg_save_param获取的参数 -
SunshineRay:
说得很好!
内存溢出和锁表问题的分析与解决 -
lzy.je:
loadrunner使用问题
操作web_reg_save_param获取的参数 -
龙游天下:
hen hao a
常用的JPA标记 -
fangzhouxing:
很好,非常感谢
常用的JPA标记
在访问Weblogic中的EJB3的应用的时候,在客户端经常会有这样一些错误: NoSuchMethodError, CORBA errors,the following Kind of Stack Trace at client end, while invoking the EJB methods:
java.lang.AssertionError: java.lang.ClassNotFoundException: com.veris.billing.GetCartCredit
at weblogic.ejb.container.internal.RemoteBusinessIntfGenerator.generateRemoteInterface (RemoteBusinessIntfGenerator.java:57)
at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.readObject (RemoteBusinessIntfProxy.java:205)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
例如:
http://forums.oracle.com/forums/thread.jspa?threadID=839694&tstart=0
下面说明一下如何生成Weblogic使用的EJB3客户端JAR。
假设原始的EJB3的JAR文件是 “SFSB_EJB3.jar” 位于 “C:\CustomJNDIName\build”目录。其中没有包括部署描述符。
我们使用“weblogic.appc”来生成。
先初始化环境:
%BEA_HOME%\wlserver_10.3\server\bin\setWLSEnv.cmd
再运行:
C:\CustomJNDIName\build> java weblogic.appc -source 1.5 -output OUTPUT -writeInferredDescriptors -verbose SFSB_EJB3.jar
打开位于“C:\CustomJNDIName\build” 下OUTPUT目录,其中“META-INF”目录下有默认的EJB3 描述文件,如下:
“ejb-jar.xml”
<?xml version=’1.0′ encoding=’UTF-8′?>
<ejb-jar xmlns=”http://java.sun.com/xml/ns/javaee” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” metadata-complete=”true”>
<enterprise-beans>
<session>
<ejb-name>ReplicableSFSBean</ejb-name>
<business-local>sfsb3.ReplicableSFSLocalIntf</business-local>
<business-remote>sfsb3.ReplicableSFSRemoteIntf</business-remote>
<ejb-class>sfsb3.ReplicableSFSBean</ejb-class>
<session-type>Stateful</session-type>
<remove-method>
<bean-method>
<method-name>removeWithRetain</method-name>
<method-params></method-params>
</bean-method>
<retain-if-exception>true</retain-if-exception>
</remove-method>
<remove-method>
<bean-method>
<method-name>removeWithoutRetain</method-name>
<method-params></method-params>
</bean-method>
<retain-if-exception>false</retain-if-exception>
</remove-method>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor></assembly-descriptor>
</ejb-jar>
默认的 “weblogic-ejb-jar.xml” 如下:
<weblogic-ejb-jar xmlns=”http://www.bea.com/ns/weblogic/weblogic-ejb-jar” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://www.bea.com/ns/weblogic/weblogic-ejb-jar http://www.bea.com/ns/weblogic/weblogic-ejb-jar/1.0/weblogic-ejb-jar.xsd”> </weblogic-ejb-jar>
现在编辑“ejb-jar.xml” 文件,添加 <ejb-client-jar>My_Ejb3_Client.jar</ejb-client-jar> Tag 到其中. 如下:
<?xml version=’1.0′ encoding=’UTF-8′?> <ejb-jar xmlns=”http://java.sun.com/xml/ns/javaee” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” metadata-complete=”true”> <enterprise-beans> <session> <ejb-name>ReplicableSFSBean</ejb-name> <business-local>sfsb3.ReplicableSFSLocalIntf</business-local> <business-remote>sfsb3.ReplicableSFSRemoteIntf</business-remote> <ejb-class>sfsb3.ReplicableSFSBean</ejb-class> <session-type>Stateful</session-type> <remove-method> <bean-method> <method-name>removeWithRetain</method-name> <method-params></method-params> </bean-method> <retain-if-exception>true</retain-if-exception> </remove-method> <remove-method> <bean-method> <method-name>removeWithoutRetain</method-name> <method-params></method-params> </bean-method> <retain-if-exception>false</retain-if-exception> </remove-method> <transaction-type>Container</transaction-type> </session> </enterprise-beans> <assembly-descriptor></assembly-descriptor> <ejb-client-jar>My_Ejb3_Client.jar</ejb-client-jar> </ejb-jar>
现在编辑 “weblogic-ejb-jar.xml” 文件,添加JNDI名到其中,如下:
<weblogic-ejb-jar xmlns=”http://www.bea.com/ns/weblogic/90″ xmlns:j2ee=”http://java.sun.com/xml/ns/j2ee” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-ejb-jar.xsd”> <weblogic-enterprise-bean> <ejb-name>ReplicableSFSB</ejb-name> <stateful-session-descriptor> <business-interface-jndi-name-map> <business-remote>sfsb3.ReplicableSFSRemoteIntf </business-remote> <jndi-name>ReplicableSFSB</jndi-name> </business-interface-jndi-name-map> </stateful-session-descriptor> </weblogic-enterprise-bean> </weblogic-ejb-jar>
现在你可以重新组装你的EJB, 在如下的位置:
“C:\CustomJNDIName\build\OUTPUT”.
在DOS的命令窗口进入上面的目录执行“setWLSEnv.cmd”,再执行如下操作:
C:\CustomJNDIName\build\OUTPUT> jar cvf Edited_SFSB_EJB3.jar .
或
C:\CustomJNDIName\build\OUTPUT> jar cvf Edited_SFSB_EJB3.jar META-INF sfsb3
或
C:\CustomJNDIName\build\OUTPUT> jar cvf Edited_SFSB_EJB3.jar META-INF sfsb3 _WL_GENERATED
注意:classpath中不要包括. 。
现在“Edited_SFSB_EJB3.jar” 可以用于部署了,但我们还要生成客户端的JAR。因此需要新建一个BUILD文件 “buildClientJar.xml” 在 “C:\CustomJNDIName\build\OUTPUT”目录中,内容如下:
<project name=”Test-Client_Jar_EJB3″ default=”deploy” basedir=”.”>
<property name=”wl.home.lib” value=”C:\bea103\wlserver_10.3\server\lib” />
<property name=”wls.username” value=”weblogic” />
<property name=”wls.password” value=”weblogic” />
<property name=”wls.hostname” value=”localhost” />
<property name=”wls.port” value=”7001″ />
<property name=”admin.server.name” value=”AdminServer” />
<property name=”deploy.target” value=”AdminServer” />
<property name=”src.dir” value=”src”/>
<property name=”build.dir” value=”build”/>
<property name=”classes.dir” value=”${build.dir}/classes”/>
<property name=”jar.dir” value=”${build.dir}”/>
<property name=”jar.file.name” value=”Edited_SFSB_EJB3″/>
<property name=”deploy.name” value=”Edited_SFSB_EJB3″ />
<property name=”deploy.source” value=”Edited_SFSB_EJB3.jar” />
<path id=”custom.classpath”>
<fileset dir=”${wl.home.lib}”>
<include name=”*.jar”/>
</fileset>
</path>
<taskdef name=”weblogicAppc” classpathref=”custom.classpath” classname=”weblogic.ant.taskdefs.j2ee.Appc”/>
<taskdef name=”wldeploy” classname=”weblogic.ant.taskdefs.management.WLDeploy”/>
<target name=”appc”>
<weblogicAppc source=”${jar.file.name}.jar”
keepgenerated=”true”
verbose=”true”
output=”.”
clientJarOutputDir=”.”
/>
</target>
<target name=”deploy” depends=”appc”>
<wldeploy action=”deploy” name=”${deploy.name}” source=”${deploy.source}” user=”${wls.username}” nostage=”true”
password=”${wls.password}” verbose=”true” adminurl=”t3://${wls.hostname}:${wls.port}” targets=”${deploy.target}” />
</target>
<target name=”redeploy”>
<wldeploy action=”redeploy” name=”${deploy.name}” user=”${wls.username}” nostage=”true” source=”${deploy.source}”
password=”${wls.password}” verbose=”true” adminurl=”t3://${wls.hostname}:${wls.port}” targets=”${deploy.target}” />
</target>
<target name=”undeploy”>
<wldeploy action=”undeploy” name=”${deploy.name}” failonerror=”false” user=”${wls.username}”
password=”${wls.password}” verbose=”true” adminurl=”t3://${wls.hostname}:${wls.port}” targets=”${deploy.target}” />
</target>
</project>
C:\CustomJNDIName\build\OUTPUT> ant -buildfile buildClientJar.xml
现在运行上面的 Ant 脚本后,“My_Ejb3_Client.jar” 客户端Jar 已经在当前目录生成,并且 EJB 也已经被部署到服务器了。
发表评论
-
安卓巴士Android开发神贴整理
2012-05-28 13:25 96510个经典的Android开源应用项目http://www.a ... -
hadoop This parser does not support specification "null" version "null"
2011-12-20 15:17 5151在eclipse中连接hadoop调试的时候出现下面的Exce ... -
WebLogic10.3在AIX上部署必须的补丁包CR370915_1030GA.jar
2010-07-13 17:21 3655Weblogic启动后,10到30分钟就会挂起,应用和管理控制 ... -
用Ant生成Web Service客户端
2010-07-13 17:14 3051用Ant脚本生成Web Service客户端的方法: < ... -
AIX下Websphere6.1.0.0以上版本不打印log4j日志问题的解决
2010-06-13 14:46 1751在目录:/opt/IBM/WebSphere/AppServe ... -
DB2的优化
2009-06-23 10:29 1043参数 建议值 备注 数 ... -
WAS6.1垃圾回收日志分析
2009-05-03 16:26 7048有名的IBM离线内存日志分析工具:IBM Pattern Mo ... -
操作web_reg_save_param获取的参数
2009-05-03 16:07 5385web_reg_save_param()可以从web请求返回的 ... -
内存溢出和锁表问题的分析与解决
2009-04-17 14:48 14461.问题的提出 内存溢出与数据库锁表的问题,可以说是开发人员的 ... -
EAR在AIX服务器上的部署
2009-02-12 13:58 1087开发的一个EJB的应用,在Windows平台下的Web ... -
JAVA类查询
2009-02-03 16:00 2285当一个类不知道属于哪个JAR包,下面这个网站可以方便的查询: ... -
Annotations 一对多与多对一
2007-09-24 10:26 4848个人觉得写Annotation并不比XML难写,并且可以开发时 ... -
如何在您的网站中加入"搜索本站功能"
2007-01-02 07:37 1678发表者:谭永锋 软件国际化工程师 许多网站都有&quo ... -
Google Analytics(分析)产品使用技巧(一)
2007-01-09 01:32 1863——如何使用 Google Analytics(分析)改进并优 ... -
怎样取得hibernate分页的记录总数
2006-12-04 10:36 4074如果数据库支持可滚动结果集的话可以用 Scrolla ... -
Hibernate+DBCP连接池
2006-12-04 10:15 4814似乎Hibernate对DBCP连接池支持的不太好,Hiber ... -
常用的JPA标记
2006-12-01 14:35 4925Table Table用来定义entity主表的name, ...
相关推荐
【标题】"WebLogic + Web + EJB 部署学习 J2EE(1)" 提供了一本深入探讨J2EE开发技术的书籍,特别是针对WebLogic服务器、Web组件和Enterprise JavaBeans(EJB)的集成与部署。这本书面向有一定Java开发基础的读者,...
2. **部署文件**:除了ejb-jar.xml,还需要一个全局的weblogic-ejb-jar.xml(针对WebLogic服务器)或jboss-ejb3.xml(针对JBoss服务器)来指定服务器特定的配置。 3. **部署过程**:将EJB的JAR文件(包含bean类、...
- 需要在`ejb-jar.xml`中定义容器管理的字段,并在`weblogic-cmp-rdbms.xml`中指定数据库映射。 - **Bean管理持久性** (`Bean-Managed Persistence`, BMP): - 开发者需要自己编写持久化逻辑。 - 更加灵活,但...
10. **远程调用**:如果EJB作为远程服务提供,还需要配置客户端的JNDI查找和EJB客户端库。客户端代码可以通过JNDI查找找到EJB的Home接口,然后创建并调用Bean实例。 总结来说,WTP1.5.3为EJB开发提供了完整的生命...
2. 部署EJB:在WebLogic Server上部署EJB,需要将EJB模块打包成ear文件,包含ejb-jar.xml和weblogic-ejb-jar.xml等配置文件。 3. 配置EJB连接:在WebLogic的管理控制台中,可以配置EJB的部署属性,如JNDI名称、事务...
7. **EJB部署配置**:发布EJB涉及的配置文件包括`ejb-jar.xml`(EJB的元数据)、`weblogic-ejb-jar.xml`(Weblogic特定的配置)和`weblogic-cmp-rdbms-jar.xml`(对于CMP实体Bean)。 8. **SSL配置**:Weblogic中的...
- Myeclipse内置的Tomcat或WebLogic服务器可以快速部署和调试EJB应用。 - 使用Junit或Myeclipse的测试工具进行单元测试,验证Bean的功能正确性。 - 调试EJB时,可以设置断点,查看变量值,理解执行流程。 5. **...
同时,可以在`weblogic-ejb-jar.xml`(或其他应用服务器对应的XML配置文件)中进行服务器特定的配置。 ### 7. 测试EJB MyEclipse提供了内置的Tomcat或WebLogic服务器,可以方便地进行本地测试。右键点击项目,选择`...
然后,运行`weblogic.appc`命令,指定-idlDirectory和-output参数来指定idl文件的输入和输出目录,以及包含EJB的JAR文件。这将生成一系列idl文件,包括主要的接口文件(如IbsServiceHome.idl和IbsService.idl)和...
EJB容器将根据此接口生成客户端调用所需的代理对象。 3. **实现接口**: - `HelloWorldBean`类实现了`HelloWorld`接口,提供了具体的业务逻辑。在这里,`SayHello`方法是业务方法,用于向用户提供服务。 4. **...
- `weblogic-ejb-jar.xml`:WebLogic特定的部署描述符,用于配置EJB的高级功能。 - 对于CMP实体Bean,可能还需要`weblogic-cmp-rdbms-jar.xml`,用于定义持久化策略和数据库映射。 #### 9. EJB接口实现 EJB的业务...
首先,需要使用jar命令解压缩文件“fw811-zh_CN.jar”,然后将解压出的文件放置到指定的目录下,比如将“server/lib/knex-LION.jar”复制到WebLogic Server的库目录“/weblogic81/server/lib”下,并将“workshop”...
然后,将`.jar`文件部署到应用服务器上,例如Tomcat或WebLogic。 #### 三、应用程序调用 客户端程序可以通过查找并创建Session Bean实例来调用其中的方法。这通常涉及到使用JNDI(Java Naming and Directory ...
2. **部署EJB**:将EJB JAR文件部署到支持EJB2.1的应用服务器上,如JBOSS、WebLogic等。 3. **应用程序调用**:从客户端应用程序(可能是Web应用或其他服务)通过Home接口实例化EJB,然后通过Remote接口调用其方法...
WebLogic Server是一款基于Java EE(Java Enterprise Edition)标准的应用服务器,支持各种Java应用程序和服务的运行,如Servlet、JSP(JavaServer Pages)、EJB(Enterprise JavaBeans)以及WS(Web Services)。...
- **Home对象**:提供EJB对象的生成、查找和删除功能,实现EJB对象的工厂模式。 - **Local接口**:为提高效率,提供了与EJB直接交互的本地接口,无须经过远程调用。 - **部署描述**:XML文件,描述EJB对中间件服务的...