我在WebSphere 8.0.0.6中遇到以下问题,并且在Web上找不到解决方案。我希望任何人都可以帮忙解决这个问题。这将有助于其他人解决这个问题。
WASX7017E: Exception received while running file /tmp/wsant3816346180883063201jacl;
exception information:com.ibm.websphere.management.application.client.AppDeploymentException:
com.ibm.websphere.management.application.client.AppDeploymentException
ADMA0209E: Enterprise JavaBeans (EJB) module ServerEJB.jar contains the following
container-managed persistence (CMP) or bean-managed persistence (BMP) :
... (list of all entities)
我使用EJB 2.0组件/项目生成EAR。到目前为止,我已经成功地在WAS 6.1中部署了这个EAR,但是在WAS 8中它不再部署了。
我有必要的bind-ejbjar.xmi,即使是新格式 - 使用IBM的脚本进行转换。
WAS 8似乎仍然知道EAR中存在EJB 3组件 - 问题是为什么?
在WAS 8中部署EAR / EJB模块的最低要求是什么 - 必须进行重大更改?
是否需要包含更多绑定文件?
感谢您的帮助
更新: 显然,有一些先决条件将包声明为EJB2.x. 请参阅IBM-HelpCenter:
IBM WebSphere info for developers DE
但我满足了所有这两个先决条件。
如何为Websphere 8打包jar以使其可以作为EJB2.x使用?
答案 0 :(得分:0)
该解决方案是通过升级到版本2.1 ejb实现的,因为允许使用“version”属性,这是WebSphere要求识别非EJB 3.0版本的。
这意味着EJB 2.0版本无法工作,因为ejb-jar_2_0.dtd中不允许使用上述标记。也许是
<cmp-version>2.x</cmp-version>
可以帮到这里,但我没有测试过它。
ejbjar.xml标题的转换带来了成功:
来自2.0(ejb-jar_2_0.dtd):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"
"http://java.sun.com/dtd/ejb-jar_2_0.dtd">
<!-- EJB-jar file declaration -->
<ejb-jar id="EJBJar" version="2.0">
<display-name>Overall Bean Definition</display-name>
<enterprise-beans>
<entity id="Dcnotetext">
...
到2.1(ejb-jar_2_1.xsd - 你需要命名空间!):
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar id="EJBJar"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.1"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">
<!-- EJB-jar file declaration -->
<display-name>Overall Bean Definition</display-name>
<enterprise-beans>
<entity id="Dcnotetext">
...
不需要对XMI或XML文件进行进一步更改!
感谢您的帮助!