问题描述
如果有人有任何建议,我需要将此 meta-inf\jboss-app.xml 从 jboss 4.2.3 中的(工作)“my-ear.ear”转换为 jboss 6:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE jboss-app
PUBLIC "-//JBoss//DTD J2EE Application 4.2//EN"
"http://www.jboss.org/j2ee/dtd/jboss-app_4_2.dtd">
<jboss-app>
<module-order>strict</module-order>
<loader-repository>
seam.jboss.org:loader=my-ear.ear
</loader-repository>
</jboss-app>
这里有一个通用的解释:https://access.redhat.com/solutions/331763 对于外部标签,它应该是:
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="6" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd">
what should I put here for "seam" ?
</application>
jboss-seam.jar 在 .ear 里面,还有一个 meta-inf\application.xml 好像没有报错:
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd"
version="5">
<display-name>TServerConsole-ear</display-name>
<!-- JBIDE-4166 Workaround - Make sure we deploy this first,since this is referenced in xxx-ejb.jar-->
<module>
<ejb>jboss-seam.jar</ejb>
</module>
<module>
<web>
<web-uri>TServerConsole.war</web-uri>
<context-root>/TServerConsole</context-root>
</web>
</module>
<module>
<ejb>TServerConsole-ejb.jar</ejb>
</module>
</application>
我发现了这个 jboss-seam-2.3.0.CR1-dist/jboss-seam-2.3.0.CR1/doc/reference/html/configuration.html
my-application.ear/
jboss-seam.jar
库/
jboss-el.jar
元信息/
MANIFEST.MF
应用程序.xml
jboss-deployment-structure.xml
我的应用程序.war/
元信息/
MANIFEST.MF
WEB-INF/
web.xml
组件.xml
面孔-config.xml
库/
jboss-seam-ui.jar
登录.jsp
注册.jsp
...
我的应用程序.jar/
元信息/
MANIFEST.MF
持久性.xml
seam.properties
组织/
jboss/
我的应用程序/
用户类
登录.class
登录Bean.class
注册.class
注册Bean.class
...
jboss 6 似乎接受这个 jboss-deployment-structure.xml :
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="org.javassist" export="true"/>
<module name="org.dom4j" export="true"/>
<module name="org.hibernate" export="true"/>
<module name="org.hibernate.envers" export="true"/>
<module name="javax.faces.api" export="true"/>
</dependencies>
</deployment>
</jboss-deployment-structure>
来自 2011 年左右的 seam 2.2.1 示例:http://seamframework.org/Seam2/Downloads.html
我尝试部署这个 jboss 接缝“预订”示例:
{"操作步骤 2" => {"JBAS014671:失败的服务" =>
{"jboss.module.service."deployment.seam-booking.ear.booking-web.war".main" => "org.jboss.msc.service.StartException in service
jboss.module.service."deployment.seam-booking.ear.booking-web.war".main: JBAS018759: 加载模块失败:deployment.seam-booking.ear.booking-web.war:main
引起:org.jboss.modules.ModuleNotFoundException: org.w3c.css.sac:main"}}}}
有没有用jboss 6和ear包含战争的seam的例子?
这个错误的根源是什么:
02:38:10,054 TRACE [org.jboss.modules] (ServerService Thread Pool -- 190) Found prevIoUsly loaded class org.jboss.seam.Component from Module "deployment.TServerConsole-ear.ear.jboss-seam.jar:main" from Service Module Loader
02:38:10,051 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/TServerConsole]] (ServerService Thread Pool -- 190) JBWEB000287: Exception sending context initialized event to listener instance of class org.jboss.seam.servlet.SeamListener: java.lang.RuntimeException: Could not create Component: tsHistoryConfigManager
at org.jboss.seam.init.Initialization.addComponent(Initialization.java:1271) [jboss-seam.jar:2.3.0.CR1]
at
org.jboss.seam.init.Initialization.installComponents(Initialization.java:1187) [jboss-seam.jar:2.3.0.CR1]
at org.jboss.seam.init.Initialization.init(Initialization.java:806) [jboss-seam.jar:2.3.0.CR1]
at
org.jboss.seam.servlet.SeamListener.contextinitialized(SeamListener.java:36) [jboss-seam.jar:2.3.0.CR1]
at
org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3339) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3780) [jbossweb-7.5.7.Final-redhat-1.jar:7.5.7.Final-redhat-1]
at
org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:163) [jboss-as-web-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]
at
org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:61) [jboss-as-web-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]
at
org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:96) [jboss-as-web-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [rt.jar:1.8.0_282]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_282]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [rt.jar:1.8.0_282]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [rt.jar:1.8.0_282]
at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_282]
at org.jboss.threads.JBossthread.run(JBossthread.java:122)
Caused by: java.lang.IllegalArgumentException: **You must specify org.jboss.seam.core.init.jndiPattern or use @JndiName: tsHistoryConfigManager**
at org.jboss.seam.Component.getJndiName(Component.java:456) [jboss-seam.jar:2.3.0.CR1]
at org.jboss.seam.Component.<init>(Component.java:233) [jboss-seam.jar:2.3.0.CR1]
at org.jboss.seam.Component.<init>(Component.java:205) [jboss-seam.jar:2.3.0.CR1]
at org.jboss.seam.init.Initialization.addComponent(Initialization.java:1255) [jboss-seam.jar:2.3.0.CR1]
... 14 more
这里有什么可以改变的吗:
TServerConsole-ejb.jar\components.properties
jndiPattern=TServerConsole-ear/\#{ejbName}/local
TServerConsole.war\WEB-INF\
<core:init debug="true" jndi-pattern="@jndiPattern@" distributable="false" />
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)