:不再支持实体 Bean



我正在使用野蝇 10.0.x。 我正在将 ejb2.1 迁移到 ejb3.2 所以这是我的 EJB-jar.xml 文件

<?xml version="1.0"?>
<ejb-jar version="3.2" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/ejb-jar_3_2.xsd">
<description>www.cedar.com - Collaborative Planning</description>
<display-name>CP - J2EE</display-name>
<enterprise-beans>
<!-- BudgetCycleEditorSession -->
<session>
<description>no description</description>
<display-name>BudgetCycleEditorSessionSEJB</display-name>
<ejb-name>BudgetCycleEditorSessionSEJB</ejb-name>
<!--//<startUserCode BudgetCycleEditorSession-ws-endpoint-->
<!--//<endUserCode BudgetCycleEditorSession-ws-endpoint-->      
<home>com.cedar.cp.ejb.api.model.BudgetCycleEditorSessionHome</home>
<remote>com.cedar.cp.ejb.api.model.BudgetCycleEditorSessionRemote</remote>
<local-home>com.cedar.cp.ejb.api.model.BudgetCycleEditorSessionLocalHome</local-home>
<local>com.cedar.cp.ejb.api.model.BudgetCycleEditorSessionLocal</local>
<ejb-class>com.cedar.cp.ejb.impl.model.BudgetCycleEditorSessionSEJB</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<ejb-local-ref>
<ejb-ref-name>ejb/ModelLocalHome</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<local-home>com.cedar.cp.ejb.impl.model.ModelLocalHome</local-home>
<local>com.cedar.cp.ejb.impl.model.ModelLocal</local>
<ejb-link>ModelEEJB</ejb-link>
</ejb-local-ref>
<ejb-local-ref>
<ejb-ref-name>ejb/DimensionLocalHome</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<local-home>com.cedar.cp.ejb.impl.dimension.DimensionLocalHome</local-home>
<local>com.cedar.cp.ejb.impl.dimension.DimensionLocal</local>
<ejb-link>DimensionEEJB</ejb-link>
</ejb-local-ref>
<resource-ref>
<res-ref-name>jdbc/fc</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
<res-ref-name>jdbc/oa</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
<res-ref-name>jdbc/ad</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
<res-ref-name>jdbc/db2</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth>
</resource-ref>
<resource-ref>
<res-ref-name>jms/cp/TopicConnectionFactory</res-ref-name>
<res-type>javax.jms.TopicConnectionFactory</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
<resource-ref>
<res-ref-name>jms/cp/entityEventTopic</res-ref-name>
<res-type>javax.jms.Topic</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
</session>
<entity>
<description>MODEL table entity bean</description>
<display-name>ModelEEJB</display-name>
<ejb-name>ModelEEJB</ejb-name>
<local-home>com.cedar.cp.ejb.impl.model.ModelLocalHome</local-home>
<local>com.cedar.cp.ejb.impl.model.ModelLocal</local>
<ejb-class>com.cedar.cp.ejb.impl.model.ModelEEJB</ejb-class>
<persistence-type>Bean</persistence-type>
<prim-key-class>com.cedar.cp.dto.model.ModelPK</prim-key-class>
<reentrant>false</reentrant>
<resource-ref>
<res-ref-name>jdbc/fc</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth>
</resource-ref>
</entity>
</enterprise-beans>
<assembly-descriptor>
<method-permission>
<unchecked/>
<method>
<ejb-name>ModelEEJB</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
<container-transaction>
<method><ejb-name>ModelEEJB</ejb-name><method-name>*</method-name></method><trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>

但是我无法将此 ejb 部署到服务器。

23:05:46,635 错误 [org.jboss.msc.service.fail] (MSC 服务线程 1-2) MSC000001:无法启动服务 jboss.deployment.unit。CPPRO.war"。PARSE: org.jboss.msc.service.StartException in service jboss.deployment.unit."CPPRO.war"。PARSE: WFLYSRV0153:无法处理部署"cppro.war"的阶段 PARSE at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:154) at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948) at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(未知来源) 导致:org.jboss.as.server.deployment.DeploymentUnitProcessing异常:WFLYEJB0450:不再支持实体 Bean,无法部署 bean ModelEEJB at org.jboss.as.ejb3.deployment.processor.EjbJarParsingDeploymentUnitProcessor.deploy(EjbJarParsingDeploymentUnitProcessor.java:179) at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:147) ...5 更多

我该如何解决它?

无法仅更改某些属性/xml配置并将当前的CMP重新部署到新的JavaEE应用程序服务器中。您必须对代码进行一些更改并重新编译它们。

关于它的复杂性,这主要取决于您使用 CMP 的方式以及您在持久性层之上的抽象级别。您可能需要对 Bean 进行一些重构/重组。

我强烈建议您查看以下指南,以便更好地了解将应用程序迁移到 JPA 时应进行的必需/可选更改。

http://what-when-how.com/enterprise-javabeans-3/migrating-cmp-2-entity-beans-to-the-ejb-3-jpa-part-1/

相关内容

最新更新