[英]JBOSS doesn't take my own libs
Check out my answer for solution 查看我的答案以寻求解决方案
I'm deploying a WAR in a Jboss Server, but I don't get that Jboss take my own libs, it is using its own libs (I think that is my problem). 我在Jboss服务器中部署了WAR,但我不明白Jboss拥有自己的库,它使用自己的库(我认为这是我的问题)。
Structure of my project:
- projectName
--- src
----- main
-------webapp
---------WEB-INF
-----------jboss-classloading.xml
-----------jboss-deployment-structure.xml
-----------jboss-web.xml
---target
-----wars
-------myWar.war
At first I only had jboss-web.xml and jboss-deployment-structure but I read that jboss-classloading is necessary for this problem. 起初我只有jboss-web.xml和jboss-deployment-structure,但是我读到jboss-classloading对于这个问题是必要的。
jboss-web.xml
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<context-root>/myProject</context-root>
<class-loading java2ClassLoadingCompliance="false">
<loader-repository>projectName/src/target/wars:loader=myWar.war
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
</loader-repository>
</class-loading>
jboss-classloading.xml
<?xml version="1.0" encoding="UTF-8"?>
<classloading xmlns="urn:jboss:classloading:1.0"
parent-first="false"
domain="myWar.war"
top-level-classloader="true"
export-all="NON_EMPTY"
import-all="false">
</classloading>
It shows me 2 errors: 它显示了2个错误:
30/07/2015 07:30:03,795 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC000001: Failed to start service jboss.deployment.unit."myWar.war".FIRST_MODULE_USE: org.jboss.msc.service.StartException in service jboss.deployment.unit."myWar.war".FIRST_MODULE_USE: JBAS018733: Error al procesar la fase FIRST_MODULE_USE de deployment "myWar.war"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:166) [jboss-as-server-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1980) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1913) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_40]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_40]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_40]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS011426: No se pudo implementar el proveedor de persistencia empacado de la aplicación 'org.hibernate.ejb.HibernatePersistence'
at org.jboss.as.jpa.processor.PersistenceProviderHandler.deploy(PersistenceProviderHandler.java:79)
at org.jboss.as.jpa.processor.PersistenceBeginInstallProcessor.deploy(PersistenceBeginInstallProcessor.java:45)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:159) [jboss-as-server-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]
... 5 more
Caused by: java.lang.ClassCastException: class org.hibernate.ejb.HibernatePersistence
at java.lang.Class.asSubclass(Class.java:3404) [rt.jar:1.8.0_40]
at org.jboss.as.jpa.processor.PersistenceProviderHandler.deploy(PersistenceProviderHandler.java:73)
... 7 more
30/07/2015 11:47:03,930 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC000001: Failed to start service jboss.deployment.unit."myWar.war".PARSE: org.jboss.msc.service.StartException in service jboss.deployment.unit."myWar.war".PARSE: JBAS018733: Error al procesar la fase PARSE de deployment "myWar.war"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:166) [jboss-as-server-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1980) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1913) [jboss-msc-1.1.5.Final-redhat-1.jar:1.1.5.Final-redhat-1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_40]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_40]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_40]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS018014: No se logró analizar sintácticamente el descriptor "/content/myWar.war/WEB-INF/jboss-web.xml" en [4,5]
at org.jboss.as.web.deployment.JBossWebParsingDeploymentProcessor.deploy(JBossWebParsingDeploymentProcessor.java:79)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:159) [jboss-as-server-7.5.0.Final-redhat-21.jar:7.5.0.Final-redhat-21]
... 5 more
Caused by: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[4,5]
Message: Unexpected element 'class-loading' encountered
at org.jboss.metadata.parser.util.MetaDataElementParser.unexpectedElement(MetaDataElementParser.java:109)
at org.jboss.metadata.parser.jbossweb.JBossWebMetaDataParser.parse(JBossWebMetaDataParser.java:210)
at org.jboss.as.web.deployment.JBossWebParsingDeploymentProcessor.deploy(JBossWebParsingDeploymentProcessor.java:71)
... 6 more
If you need more information let me know it. 如果您需要更多信息,请告诉我。
Thank you in advance. 先感谢您。
EDIT WITH NEW ERROR 使用新错误进行编辑
31/07/2015 12:29:52,896 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/ksjm_ksjm_01]] (ServerService Thread Pool -- 53) JBWEB000287: Exception sending context initialized event to listener instance of class com.grupobbva.sl.soa.gui.catalogos.ApplicationContextListener: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'grupoDaoImpl': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.hibernate.SessionFactory com.grupobbva.sl.soa.configuracion.dao.impl.AbstractDao.sessionFactory; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [spring/dao-configuracion-applicationContext.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to get the default Bean Validation factory
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:288) [spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1116) [spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
dao-configuracion-applicationContext.xml dao-configuracion-applicationContext.xml
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${configuracion.servicio.driverClassName}" />
<property name="url" value="${configuracion.servicio.url}" />
<property name="username" value="${usuario}" />
<property name="password" value="${password}" />
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="hibernateProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">${configuracion.servicio.hbm2ddl}</prop>
<prop key="hibernate.dialect">${configuracion.servicio.dialect}</prop>
<prop key="javax.persistence.jdbc.driver">${configuracion.servicio.driverClassName}</prop>
<prop key="hibernate.default_schema">${configuracion.servicio.default-schema}</prop>
</props>
</property>
<property name="packagesToScan"
value="com.grupobbva.sl.soa.core.domain, com.grupobbva.sl.soa.core.domain.config" />
</bean>
I have read in other post that it would work if I upgrade my sessionFactory bean to hibernate 4....but it does not work for me =( 我在其他文章中已经读到,如果我将sessionFactory bean升级到休眠4,它将起作用。但是,它对我不起作用=(
Finally I solved this issue. 最后,我解决了这个问题。 I deleted jboss-classloading.xml and jboss-deployment-structure.xml and it worked!! 我删除了jboss-classloading.xml和jboss-deployment-structure.xml,它起作用了!! This way there is no "conflicts" between libraries :) 这样库之间就没有“冲突”了:)
I hope it can be useful for someone. 我希望它对某人有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.