Miguel Angel Medina

La forma de solucionar este problema es buscar los posibles conflictos entre las dependencias del proyecto. El conflicto puede darse entre
las dependencias del mismo módulo o entre dependencias de distintos módulos que a su vez pueden dependen entre sí (en mi caso
los conflictos entre dependencias se han dado en el mismo módulo).

En este caso, el código es un módulo que alberga varios servicios web, que están generados (los objetos y dependencias) unos con Axis y otros con CXF.

La traza generada por este conflicto de dependencias es el siguiente:

Caused by: java.lang.NoSuchFieldError: QUALIFIED
    at org.apache.cxf.service.model.SchemaInfo.setSchema(SchemaInfo.java:146)
    at org.apache.cxf.wsdl11.SchemaUtil.extractSchema(SchemaUtil.java:136)
    at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:73)
    at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:65)
    at org.apache.cxf.wsdl11.SchemaUtil.getSchemas(SchemaUtil.java:60)
    at org.apache.cxf.wsdl11.WSDLServiceBuilder.getSchemas(WSDLServiceBuilder.java:372)
    at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:339)
    at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:203)
    at org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:175)
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:426)
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:546)
    at org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:263)
    at org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:205)
    at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:102)
    at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:159)
    at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:211)
    at org.apache.cxf.jaxws.EndpointImpl.getServer(EndpointImpl.java:454)
    at org.apache.cxf.jaxws.EndpointImpl.doPublish(EndpointImpl.java:334)
    at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:251)
    at org.apache.cxf.jaxws.EndpointImpl.publish(EndpointImpl.java:537)
    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:597)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1608)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1549)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1479)
    ... 53 more

 

   
La forma de solucionarlo es mostrar las dependencias del módulo o proyecto. Si estamos utilizando maven, la orden que tendremos que ejecutar
será la siguiente:
mvn dependency:tree
Si no tenemos el código compilado, podemos ejecutar para generar el arbol de dependencias:
mvn compile dependency:tree
Con la sentencia anterior obtendremos una salida parecida a la siguiente:

	[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ miprosegur-ws ---
	[INFO] com.prosegur.miprosegur:miprosegur-ws:war:1.0-SNAPSHOT
	[INFO] +- com.prosegur.miprosegur:miprosegur-common:jar:1.0-SNAPSHOT:compile
	[INFO] |  +- org.springframework:spring-core:jar:3.2.3.RELEASE:compile
	[INFO] |  |  \- commons-logging:commons-logging:jar:1.1.1:compile
	[INFO] |  +- org.springframework:spring-context:jar:3.2.3.RELEASE:compile
	[INFO] |  |  +- org.springframework:spring-beans:jar:3.2.3.RELEASE:compile
	[INFO] |  |  \- org.springframework:spring-expression:jar:3.2.3.RELEASE:compile
	[INFO] |  +- org.springframework:spring-context-support:jar:3.2.3.RELEASE:compile
	[INFO] |  +- org.springframework:spring-tx:jar:3.2.3.RELEASE:compile
	[INFO] |  |  \- aopalliance:aopalliance:jar:1.0:compile
	[INFO] |  +- org.springframework:spring-orm:jar:3.2.3.RELEASE:compile
	[INFO] |  |  \- org.springframework:spring-jdbc:jar:3.2.3.RELEASE:compile
	[INFO] |  +- org.springframework:spring-web:jar:3.2.3.RELEASE:compile
	[INFO] |  +- org.springframework:spring-webmvc:jar:3.2.3.RELEASE:compile
	[INFO] |  +- org.springframework:spring-aop:jar:3.2.3.RELEASE:compile
	[INFO] |  +- org.springframework:spring-test:jar:3.2.3.RELEASE:compile
	[INFO] |  +- org.springframework.mobile:spring-mobile-device:jar:1.1.0.M3:compile
	[INFO] |  +- log4j:log4j:jar:1.2.16:compile
	[INFO] |  +- org.apache.shiro:shiro-core:jar:1.2.2:compile
	[INFO] |  |  +- org.slf4j:slf4j-api:jar:1.7.5:compile (version managed from 1.6.4)
	[INFO] |  |  \- commons-beanutils:commons-beanutils:jar:1.8.0:compile (version managed from 1.8.3)
	[INFO] |  +- org.apache.shiro:shiro-web:jar:1.2.2:compile
	[INFO] |  +- org.apache.shiro:shiro-spring:jar:1.2.2:compile
	[INFO] |  +- jstl:jstl:jar:1.2:compile
	[INFO] |  +- org.dbunit:dbunit:jar:2.4.9:compile
	[INFO] |  |  \- commons-collections:commons-collections:jar:3.1:compile (version managed from 3.2.1)
	[INFO] |  +- commons-io:commons-io:jar:2.4:compile
	[INFO] |  +- commons-fileupload:commons-fileupload:jar:1.2.2:compile
	[INFO] |  +- org.apache.xmlbeans:xmlbeans:jar:2.4.0:compile
	[INFO] |  +- javax.validation:validation-api:jar:1.0.0.GA:compile
	[INFO] |  +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.12:compile
	[INFO] |  |  \- org.codehaus.jackson:jackson-core-asl:jar:1.9.12:compile
	[INFO] |  +- org.codehaus.jackson:jackson-jaxrs:jar:1.9.12:compile
	[INFO] |  +- org.codehaus.jackson:jackson-xc:jar:1.9.12:compile
	[INFO] |  +- javax.servlet:jstl:jar:1.2:compile
	[INFO] |  +- commons-dbcp:commons-dbcp:jar:1.2.2:compile
	[INFO] |  |  \- commons-pool:commons-pool:jar:1.3:compile
	[INFO] |  +- org.aspectj:aspectjrt:jar:1.7.3:compile
	[INFO] |  +- org.aspectj:aspectjweaver:jar:1.7.3:compile
	[INFO] |  +- commons-codec:commons-codec:jar:1.8:compile
	[INFO] |  +- org.apache.axis2:axis2-transport-http:jar:1.6.1:compile
	[INFO] |  |  \- org.apache.httpcomponents:httpcore:jar:4.0:compile
	[INFO] |  +- org.apache.axis2:axis2-adb:jar:1.6.1:compile
	[INFO] |  |  \- org.apache.geronimo.specs:geronimo-activation_1.1_spec:jar:1.0.2:compile
	[INFO] |  +- org.apache.axis2:axis2-java2wsdl:jar:1.6.1:compile
	[INFO] |  |  +- org.apache.ant:ant:jar:1.7.0:compile
    --> [INFO] |  |  +- org.apache.ws.commons.schema:XmlSchema:jar:1.4.7:compile <-- ** Dependencia en conflicto **
	[INFO] |  |  \- org.apache.geronimo.specs:geronimo-javamail_1.4_spec:jar:1.6:compile
	[INFO] |  +- org.apache.axis2:axis2-adb-codegen:jar:1.6.1:compile
	[INFO] |  |  \- commons-cli:commons-cli:jar:1.2:compile
	[INFO] |  +- org.apache.axis2:axis2-ant-plugin:jar:1.6.1:compile
	[INFO] |  |  +- wsdl4j:wsdl4j:jar:1.6.2:compile
	[INFO] |  |  \- org.apache.neethi:neethi:jar:3.0.1:compile
	[INFO] |  +- org.apache.axis2:axis2-clustering:jar:1.6.1:compile
	[INFO] |  |  +- org.apache.tomcat:tribes:jar:6.0.16:compile
	[INFO] |  |  \- org.apache.tomcat:juli:jar:6.0.16:compile
	[INFO] |  +- org.apache.axis2:axis2-codegen:jar:1.6.1:compile
	[INFO] |  +- org.apache.axis2:axis2-corba:jar:1.6.1:compile
	[INFO] |  |  \- antlr:antlr:jar:2.7.7:compile
	[INFO] |  +- org.apache.axis2:axis2-fastinfoset:jar:1.6.1:compile
	[INFO] |  |  +- com.sun.xml.fastinfoset:FastInfoset:jar:1.2.7:compile
	[INFO] |  |  \- commons-httpclient:commons-httpclient:jar:3.1:compile
	[INFO] |  +- org.apache.axis2:axis2-jaxbri:jar:1.6.1:compile
	[INFO] |  |  +- com.sun.xml.bind:jaxb-impl:jar:2.1.7:compile
	[INFO] |  |  +- com.sun.xml.bind:jaxb-xjc:jar:2.1.7:compile
	[INFO] |  |  \- javax.xml.bind:jaxb-api:jar:2.1:compile
	[INFO] |  +- org.apache.axis2:axis2-jaxws:jar:1.6.1:compile
	[INFO] |  |  +- org.apache.geronimo.specs:geronimo-annotation_1.0_spec:jar:1.1:compile
	[INFO] |  |  +- org.apache.geronimo.specs:geronimo-jaxws_2.2_spec:jar:1.0:compile
	[INFO] |  |  \- xalan:xalan:jar:2.7.0:compile
	[INFO] |  +- org.apache.axis2:axis2-jibx:jar:1.6.1:compile
	[INFO] |  |  +- org.jibx:jibx-bind:jar:1.2:compile
	[INFO] |  |  |  \- bcel:bcel:jar:5.1:compile
	[INFO] |  |  |     \- regexp:regexp:jar:1.2:compile
	[INFO] |  |  \- org.jibx:jibx-run:jar:1.2:compile
	[INFO] |  +- org.apache.axis2:axis2-json:jar:1.6.1:compile
	[INFO] |  |  \- org.codehaus.jettison:jettison:jar:1.0-RC2:compile
	[INFO] |  +- org.apache.axis2:axis2-kernel:jar:1.6.1:compile
	[INFO] |  |  +- org.apache.ws.commons.axiom:axiom-api:jar:1.2.12:compile
	[INFO] |  |  |  +- jaxen:jaxen:jar:1.1.1:compile
	[INFO] |  |  |  \- org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:compile
	[INFO] |  |  +- org.apache.ws.commons.axiom:axiom-impl:jar:1.2.12:compile
	[INFO] |  |  +- org.apache.geronimo.specs:geronimo-ws-metadata_2.0_spec:jar:1.1.2:compile
	[INFO] |  |  +- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1:compile
	[INFO] |  |  +- org.apache.woden:woden-api:jar:1.0M9:compile
	[INFO] |  |  +- org.apache.woden:woden-impl-dom:jar:1.0M9:compile
	[INFO] |  |  |  \- org.apache.woden:woden-impl-commons:jar:1.0M9:compile
	[INFO] |  |  \- javax.ws.rs:jsr311-api:jar:1.0:compile
	[INFO] |  +- org.apache.axis2:axis2-metadata:jar:1.6.1:compile
	[INFO] |  |  \- com.sun.xml.ws:jaxws-tools:jar:2.1.3:compile
	[INFO] |  +- org.apache.axis2:axis2-mtompolicy:jar:1.6.1:compile
	[INFO] |  +- org.apache.axis2:axis2-saaj:jar:1.6.1:compile
	[INFO] |  |  +- org.apache.geronimo.specs:geronimo-saaj_1.3_spec:jar:1.0.1:compile
	[INFO] |  |  \- org.apache.ws.commons.axiom:axiom-dom:jar:1.2.12:compile
	[INFO] |  +- org.apache.axis2:axis2-soapmonitor-servlet:jar:1.6.1:compile
	[INFO] |  +- org.apache.axis2:axis2-spring:jar:1.6.1:compile
	[INFO] |  +- org.apache.axis2:axis2-transport-local:jar:1.6.1:compile
	[INFO] |  +- org.apache.axis2:axis2-xmlbeans:jar:1.6.1:compile
	[INFO] |  |  \- org.apache.ant:ant-launcher:jar:1.7.0:compile
	[INFO] |  +- javax.jms:jms-api:jar:1.1-rev-1:compile
	[INFO] |  \- com.tibco:jms:jar:1.0:compile
	[INFO] +- com.prosegur.miprosegur:miprosegur-business:jar:1.0-SNAPSHOT:compile
	[INFO] |  +- com.prosegur.miprosegur:miprosegur-v1:jar:1.0-SNAPSHOT:compile
	[INFO] |  |  +- asm:asm-attrs:jar:2.2.3:compile
	[INFO] |  |  +- org.hibernate:hibernate:jar:3.2.7.ga:compile
	[INFO] |  |  |  +- net.sf.ehcache:ehcache:jar:1.2.3:compile
	[INFO] |  |  |  +- javax.transaction:jta:jar:1.0.1B:compile
	[INFO] |  |  |  +- dom4j:dom4j:jar:1.6.1:compile
	[INFO] |  |  |  \- cglib:cglib:jar:2.2:compile (version managed from 2.1_3)
	[INFO] |  |  +- c3p0:c3p0:jar:0.9.1.2:compile (version managed from 0.9.1)
	[INFO] |  |  +- c3p0:c3p0-oracle-thin-extras:jar:0.9.0.2:compile
	[INFO] |  |  +- org.hibernate:hibernate-core:jar:3.6.9.Final:compile
	[INFO] |  |  |  +- org.hibernate:hibernate-commons-annotations:jar:3.2.0.Final:compile
	[INFO] |  |  |  \- org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.1.Final:compile
	[INFO] |  |  +- joda-time:joda-time:jar:2.1:compile
	[INFO] |  |  +- joda-time:joda-time-hibernate:jar:0.8:compile
	[INFO] |  |  +- commons-lang:commons-lang:jar:2.6:compile
	[INFO] |  |  +- org.json:json:jar:20070829:compile
	[INFO] |  |  +- com.lowagie:itext:jar:2.1.7:compile
	[INFO] |  |  |  +- bouncycastle:bcmail-jdk14:jar:138:compile
	[INFO] |  |  |  +- bouncycastle:bcprov-jdk14:jar:138:compile
	[INFO] |  |  |  \- org.bouncycastle:bctsp-jdk14:jar:1.38:compile
	[INFO] |  |  |     +- org.bouncycastle:bcprov-jdk14:jar:1.38:compile
	[INFO] |  |  |     \- org.bouncycastle:bcmail-jdk14:jar:1.38:compile
	[INFO] |  |  +- javax.mail:mail:jar:1.4:compile
	[INFO] |  |  +- javax.xml:jaxrpc-api-osgi:jar:1.1-b01:compile
	[INFO] |  |  +- xerces:xercesImpl:jar:2.8.1:compile
	[INFO] |  |  |  \- xml-apis:xml-apis:jar:1.3.03:compile
	[INFO] |  |  +- org.jdom:jdom:jar:1.1:compile
	[INFO] |  |  +- net.sourceforge.jexcelapi:jxl:jar:2.6.12:compile
	[INFO] |  |  +- org.ostermiller:utils:jar:1.07.00:compile
	[INFO] |  |  +- org.apache.poi:poi:jar:3.0-FINAL:compile
	[INFO] |  |  +- displaytag:displaytag:jar:1.2:compile
	[INFO] |  |  +- org.ajaxtags:ajaxtags:jar:1.1.5:compile
	[INFO] |  |  |  \- net.htmlparser:jericho-html:jar:1.5-dev1:compile
	[INFO] |  |  +- taglibs:standard:jar:1.1.2:compile
	[INFO] |  |  +- com.google.code.gson:gson:jar:1.7.1:compile
	[INFO] |  |  \- net.sourceforge.javacsv:javacsv:jar:2.0:compile
	[INFO] |  \- com.prosegur.miprosegur:miprosegur-persistence:jar:1.0-SNAPSHOT:compile
	[INFO] |     +- org.mybatis:mybatis:jar:3.2.2:compile
	[INFO] |     +- org.mybatis:mybatis-spring:jar:1.2.0:compile
	[INFO] |     +- com.oracle:ojdbc6:jar:11.2.0.3:compile
	[INFO] |     \- org.hibernate:hibernate-validator:jar:4.2.0.Final:compile
	[INFO] +- junit:junit:jar:4.8.2:test
	[INFO] +- org.apache.cxf:cxf-rt-frontend-jaxws:jar:2.7.5:compile
	[INFO] |  +- xml-resolver:xml-resolver:jar:1.2:compile
	[INFO] |  +- asm:asm:jar:3.3.1:compile
	[INFO] |  +- org.apache.cxf:cxf-api:jar:2.7.5:compile
	[INFO] |  |  +- org.codehaus.woodstox:woodstox-core-asl:jar:4.2.0:compile
	[INFO] |  |  |  \- org.codehaus.woodstox:stax2-api:jar:3.1.1:compile
-->	[INFO] |  |  \- org.apache.ws.xmlschema:xmlschema-core:jar:2.0.3:compile <-- ** Dependencia en conflicto **
	[INFO] |  +- org.apache.cxf:cxf-rt-core:jar:2.7.5:compile
	[INFO] |  +- org.apache.cxf:cxf-rt-bindings-soap:jar:2.7.5:compile
	[INFO] |  |  \- org.apache.cxf:cxf-rt-databinding-jaxb:jar:2.7.5:compile
	[INFO] |  +- org.apache.cxf:cxf-rt-bindings-xml:jar:2.7.5:compile
	[INFO] |  +- org.apache.cxf:cxf-rt-frontend-simple:jar:2.7.5:compile
	[INFO] |  \- org.apache.cxf:cxf-rt-ws-addr:jar:2.7.5:compile
	[INFO] |     \- org.apache.cxf:cxf-rt-ws-policy:jar:2.7.5:compile
	[INFO] +- org.apache.cxf:cxf-rt-frontend-jaxrs:jar:2.7.5:compile
	[INFO] |  \- javax.ws.rs:javax.ws.rs-api:jar:2.0-m10:compile
	[INFO] +- org.apache.cxf:cxf-rt-transports-http:jar:2.7.5:compile
	[INFO] +- org.apache.cxf:cxf-rt-transports-http-jetty:jar:2.7.5:compile
	[INFO] |  +- org.eclipse.jetty:jetty-server:jar:8.1.7.v20120910:compile
	[INFO] |  |  +- org.eclipse.jetty:jetty-continuation:jar:8.1.7.v20120910:compile
	[INFO] |  |  \- org.eclipse.jetty:jetty-http:jar:8.1.7.v20120910:compile
	[INFO] |  |     \- org.eclipse.jetty:jetty-io:jar:8.1.7.v20120910:compile
	[INFO] |  |        \- org.eclipse.jetty:jetty-util:jar:8.1.7.v20120910:compile
	[INFO] |  +- org.eclipse.jetty:jetty-security:jar:8.1.7.v20120910:compile
	[INFO] |  \- org.apache.geronimo.specs:geronimo-servlet_3.0_spec:jar:1.0:compile
	[INFO] \- org.codehaus.woodstox:wstx-asl:jar:3.2.8:compile
	[INFO]    \- stax:stax-api:jar:1.0.1:compile
Con los símbolos --> y <-- he han señalado las dependencias que entran en conflicto en este caso, ya que la clases contenidas en
org.apache.ws.commons.schema:XmlSchema:jar:1.4.7 ya se encuentran en org.apache.ws.xmlschema:xmlschema-core:jar:2.0.3.

La forma de solucionarlo es añadiendo una etiqueta <exclusion> en el pom para evitar la inclusión de la dependencia conflictiva.
 
Podremos ver en el árbol de dependencias que las que entran en conflicto están en diferentes módulos, y además éstos son dependencias del módulo
que contiene los servicios web, por lo que para evitar el conflicto se excluye la que nos interese, en este caso excluímos la dependencia de Axis.

Incluyendo las siguientes entiquetas en el pom solucionaremos el problema:

        <dependency>
            <groupId>com.prosegur.miprosegur</groupId>
            <artifactId>miprosegur-common</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.ws.commons.schema</groupId>
                    <artifactId>XmlSchema</artifactId>
                </exclusion>
            </exclusions>
        </dependency>      

Algunas veces IntelliJ (en las versiones 15 y anteriores) puede mostrar un error como el siguiente al anotar con @Autowired la definición de una variable. 

El error es algo parecido a éste:

Error que muestra IntelliJ IDEA al anotar con @Autowired una variable

La clase está anotada correctamente y sigue mostrando el error, podemos solucionarlo utilizando la siguiente anotación:

@SuppressWarnings("SpringJavaAutowiringInspection")

 Con ésta solución, IntelliJ dejará de mostrarnos el error anterior y podremos seguir trabajando "tranquilos" sin ver el molestro subrayado rojo ;-)

Cuando nos encontramos este mensaje al arrancar un Tomcat desde IntellJ IDEA y no se despliega el war con el que estamos trabajando, la causa es que tenemos contenido en el fichero bin/setenv.bat y estamos asignando la variable JAVA_OPTIONS

La forma correcta de configurar el contenido del fichero bin/setenv.bat es la siguiente:

Linux/Mac

export JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=512m -Xmx1024m"

Windows

SET JAVA_OPTS=%JAVA_OPTS% -XX:MaxPermSize=512m -Xmx1024m

(Las opciones anteriores son un ejemplo y no tienen por qué ser esas las que necesitemos)

Debemos incluir el contenido que la variable JAVA_OPTS pudiera tener asignado por el entorno de desarrollo IntellJ IDEA

Página 1 de 8

Logo M4 ERP
Developer

Seguridad de la página de inicio

Please publish modules in offcanvas position.