首页 文章

jboss-deployment-structure.xml不会加载My EAR项目中的依赖项

提问于
浏览
10

这是我的EAR项目的jboss-deployment-structure.xml .

<?xml version="1.0" encoding="UTF-8"?>

<jboss-deployment-structure >

<deployment>

    <dependencies>
        <module name="org.javassist" export="true" />
        <module name="org.apache" export="true"/>
        <module name="org.antlr" export="true"/>
        <module name="org.dom4j" export="true"/>
        <module name="org.apache" export="true"/>
        <module name="org.hibernate" export="true"/>

    </dependencies>

</deployment>


</jboss-deployment-structure>

和EAR项目在部署路径中有我的其他项目 . 一些是JARS,一个是WAR . 我的一个Project使用EAR项目的lib中的依赖项 . 现在我从lib文件夹中删除jar并添加到jboss-deployment-structure.xml上面 . 我猜 jar 没有加载,并给出了找不到所需 jar 的错误 . 这是StackTrace

08:54:05,555 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/SBOS_Online].[resteasy-servlet]] (http--0.0.0.0-8080-1) Servlet.service() for servlet resteasy-servlet threw exception: org.jboss.resteasy.spi.UnhandledException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userBusinessImpl' defined in class path resource [config/applicationContext.xml]: Cannot resolve reference to bean 'userHibernateDAOImpl' while setting bean property 'userDAO'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userHibernateDAOImpl' defined in class path resource [config/applicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [com.scs.sbos.dao.hibernate.impl.UserHibernateDAOImpl]: Constructor threw exception; nested exception is java.lang.Error: Unresolved compilation problems: 
The import org.hibernate.Query cannot be resolved
The import org.hibernate.Session cannot be resolved
The import org.hibernate.SessionFactory cannot be resolved
The import org.hibernate.Transaction cannot be resolved
SessionFactory cannot be resolved to a type
Session cannot be resolved to a type
Transaction cannot be resolved to a type
SessionFactory cannot be resolved to a type
Session cannot be resolved to a type
Transaction cannot be resolved to a type
SessionFactory cannot be resolved to a type
Session cannot be resolved to a type
Transaction cannot be resolved to a type
SessionFactory cannot be resolved to a type
Session cannot be resolved to a type
SessionFactory cannot be resolved to a type
Session cannot be resolved to a type
SessionFactory cannot be resolved to a type
Session cannot be resolved to a type
SessionFactory cannot be resolved to a type
Query cannot be resolved to a type
Session cannot be resolved to a type
SessionFactory cannot be resolved to a type
Query cannot be resolved to a type
Session cannot be resolved to a type
SessionFactory cannot be resolved to a type
Session cannot be resolved to a type
SessionFactory cannot be resolved to a type
Session cannot be resolved to a type
SessionFactory cannot be resolved to a type
Query cannot be resolved to a type
Session cannot be resolved to a type
SessionFactory cannot be resolved to a type
Session cannot be resolved to a type
SessionFactory cannot be resolved to a type
Query cannot be resolved to a type
SessionFactory cannot be resolved to a type
SessionFactory cannot be resolved to a type
SessionFactory cannot be resolved to a type
SessionFactory cannot be resolved to a type

 at     org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:340) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:214) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatcher.java:190) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:540) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:502) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:119) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) [resteasy-jaxrs-2.3.2.Final.jar:]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.13.Final.jar:]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:]

这意味着没有添加Hibernate jar,但为什么会出现这个问题 .

2 回答

  • 1

    必须在顶级部署中定义jboss-deployment-structure.xml . 也就是说,如果直接部署WAR文件,它可能包含描述符 . 如果将WAR打包在EAR文件中,则需要移动描述符的内容并在EAR文件的jboss-deployment-structure.xml内定义它 .

    您需要使用子部署:

    <jboss-deployment-structure>
         <sub-deployment name="myapp.war">
           <dependencies>
             <module name="org.javassist" export="true" />
             <module name="org.apache" export="true"/>
             <module name="org.antlr" export="true"/>
             <module name="org.dom4j" export="true"/>
             <module name="org.apache" export="true"/>
             <module name="org.hibernate" export="true"/>
           </dependencies>
         </sub-deployment>
    </jboss-deployment-structure>
    

    有一个很好的描述on the JBoss Docs

  • 16

    您应该将moudle依赖项添加到jar文件的Deployments标记下的manifest.mf文件中 . 这应该工作正常 .

相关问题