我正在开展一些迁移项目,涉及从Ant / CVS / Jboss4 / Java5到Maven / SVN / Jboss7 / Java6的相当多的东西 - 这变得很讨厌。
第一步,我正在努力将ant构建移动到maven - 它在iteslf中涉及很多复杂功能。现在我已经构建了ear文件,并且我将它与来自ant build的耳朵进行了比较,我认为我对maven构建很好。
现在,首先在Jboss4上部署,我加密
[ejb.EJBDeployer.verifier] EJB spec violation:
Warning: The message driven bean must declare one onMessage() method.
2011-11-08 15:25:03,079 ERROR (Thread: main) [jboss.deployment.MainDeployer] Could not create deployment: file:/opt/jboss-4.0.3SP1/server/default/tmp/deploy/tmp46514Billing-EAR-1.0.ear-contents/processsubscriptionbean-1.0.jar
org.jboss.deployment.DeploymentException: Verification of Enterprise Beans failed, see above for error messages.
at org.jboss.ejb.EJBDeployer.create(EJBDeployer.java:575)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:118)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:127)
at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:80)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:176)
at $Proxy24.create(Unknown Source)
at org.jboss.deployment.MainDeployer.create(MainDeployer.java:935)
at org.jboss.deployment.MainDeployer.create(MainDeployer.java:925)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:789)
我遇到了这个帖子jBoss deployment of message-driven bean spec violation - 所以我想我在我的新maven构建中使用了错误的库,我替换它并确保它使用相同的javax.jms库(这现在指向相同的包含javax.jms.Message作为原始ant构建的jar) - 实际上我只是抓住了ant build引用的jar并将其上传到maven repo并从我的maven构建引用它。
但我仍然遇到上述问题。最初的ant-build会毫无问题地部署,但是目前我仍然坚持使用maven-build ear来解决这个问题。
关于我可以采取哪些其他步骤以确保没有不同的类文件问题的任何建议?谢谢!
答案 0 :(得分:1)
javax.jms库是否包装在你的耳中(jboss-j2ee.jar,jboss-client.jar等)?如果是这样,您不想要,因为您想使用应用服务器提供的那个。你可以通过改变你的pom中的依赖关系来解决这个问题,让<scope>provided</scope>
用于任何不应该在你耳边的东西。