[RESOLVIDO] Erro VRaptor x WS

4 respostas
mondor

Boa tarde pessoal, estou com um probleminha lascado aqui, que já está tirando minha paciência hehe

O cenário é bem simples:

Meu controller, chama uma classe que chama os webservices que consumo e faz o trabalho inteiro!

Segue:

@Get @Path("/consulta")
	public void consulta(String solicitacao, String workflow) {
		try {
			DatasetS dataWkf = new DatasetS();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
(sim eu simplifiquei o código, e apaguei a lógica porque já não sei mais o que fazer. hehe

Alguns pontos que tentei fazer, criei um projeto java seco, com um main e consumir o mesmo arquivo que está no meu projeto vraptor e funcionou!!!!

Mais um código simples, só para tentativa de simulação:
public static void main (String args[]) {
		Teste test = new Teste();
	}
	
	public Teste() {
		try {
			DatasetS datasetWkf = new DatasetS();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

Mas bom, parece que o meu webservice, está entrando em conflito com algo do vRaptor, segundo o meu trace...

15:46:42,545 ERROR [[default]] Servlet.service() for servlet default threw exception
br.com.caelum.vraptor.InterceptionException: exception raised, check root cause for details: java.lang.LinkageError: loader constraint violation: when resolving method "javax.xml.ws.Service.<init>(Ljava/net/URL;Ljavax/xml/namespace/QName;)V" the class loader (instance of org/jboss/classloader/spi/base/BaseClassLoader) of the current class, com/datasul/technology/webdesk/dataservice/ws/DatasetServiceService, and the class loader (instance of <bootloader>) for resolved class, javax/xml/ws/Service, have different Class objects for the type javax/xml/namespace/QName used in the signature
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:96)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:87)
	at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.LinkageError: loader constraint violation: when resolving method "javax.xml.ws.Service.<init>(Ljava/net/URL;Ljavax/xml/namespace/QName;)V" the class loader (instance of org/jboss/classloader/spi/base/BaseClassLoader) of the current class, com/datasul/technology/webdesk/dataservice/ws/DatasetServiceService, and the class loader (instance of <bootloader>) for resolved class, javax/xml/ws/Service, have different Class objects for the type javax/xml/namespace/QName used in the signature
	at com.datasul.technology.webdesk.dataservice.ws.DatasetServiceService.<init>(DatasetServiceService.java:46)
	at com.empresa.controller.DatasetS.<init>(DatasetS.java:25)
	at com.empresa.controller.SistemaController.consulta(SistemaController.java:24)
	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 br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:61)
	... 43 more

Existe algum parâmetro para configurar isto? Meu chute de que o ws usa algo que o vraptor também usa, é válido? Heeeelp!

Abraços gujeiros ;)

4 Respostas

Lucas_Cavalcanti

vc está fazendo o deploy num jboss? se sim, verifique se vc está com o jar do jax-ws no war, e se estiver, tire.

Vin_ius_Michelutti

Opa Lucas! Sim, o deploy vai ter que ser em um jboss pois vou rodar como uma aplicação parceira…

Verifiquei os jars em minha lib, e não utilizo ele não…

segue uma listagem dos que uso:

aopalliance.jar
aspectjrt.jar
axis.jar
cglib-nodep-2.1_3.jar
commons-collections-3.2.1.jar
commons-discovery-0.2.jar
commons-logging.jar
guava-r07.jar
javassist-3.14.0.GA.jar
jaxrpc.jar
jstl-api-1.2.jar
jstl-impl-1.2.jar
log4j-1.2.16.jar
mirror-1.5.1.jar
objenesis-1.1.jar
ognl-2.7.3.jar
org.springframework.aop-3.0.5.RELEASE.jar
org.springframework.asm-3.0.5.RELEASE.jar
org.springframework.aspects-3.0.5.RELEASE.jar
org.springframework.beans-3.0.5.RELEASE.jar
org.springframework.context-3.0.5.RELEASE.jar
org.springframework.core-3.0.5.RELEASE.jar
org.springframework.expression-3.0.5.RELEASE.jar
org.springframework.web-3.0.5.RELEASE.jar
paranamet-2.2.jar
saaj.jar
scannotation-1.0.2.jar
slf4j-api-1.6.1.jar
slf4j-log4j12-1.6.1.jar
ecm-ws-client.jar (meus webservices)
vraptor-3.4.0.jar
wsdl4j.jar
xstream-1.3.1.jar
Vin_ius_Michelutti

Lucas, parece que resolvi o problema! Mas ainda continua um erro hehe, veja se consegue me ajudar…

Com a listagem dos jars verifiquei alguns estranhos, que eu não tinha colocado. Provavelmente em algum teste eu gerei um client do ws por dentro do eclipse que acabou importando os jars.

Retirei os jars:
axis.jar
commons-discovery-0.2.jar
jaxrpc.jar
saaj.jar
wsdl4j.jar

Assim sendo, fiquei só com os jars do vRaptor e o meu jar do WS. A trace agora ficou assim:

09:57:42,524 ERROR [STDERR] javax.xml.ws.WebServiceException: java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage
09:57:42,525 ERROR [STDERR] 	at org.jboss.ws.core.jaxws.client.ClientImpl.handleRemoteException(ClientImpl.java:397)
09:57:42,527 ERROR [STDERR] 	at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:303)
09:57:42,527 ERROR [STDERR] 	at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:170)
09:57:42,528 ERROR [STDERR] 	at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:150)
09:57:42,528 ERROR [STDERR] 	at $Proxy160.getDataset(Unknown Source)
09:57:42,528 ERROR [STDERR] 	at com.empresa.controller.DatasetS.getDataset(DatasetS.java:68)
09:57:42,529 ERROR [STDERR] 	at com.empresa.controller.DatasetS.changeMethod(DatasetS.java:45)
09:57:42,529 ERROR [STDERR] 	at com.empresa.controller.DatasetS.<init>(DatasetS.java:31)
09:57:42,529 ERROR [STDERR] 	at com.empresa.controller.SistemaController.consulta(SistemaController.java:24)
09:57:42,529 ERROR [STDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
09:57:42,529 ERROR [STDERR] 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
09:57:42,529 ERROR [STDERR] 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
09:57:42,529 ERROR [STDERR] 	at java.lang.reflect.Method.invoke(Method.java:597)
09:57:42,529 ERROR [STDERR] 	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:61)
09:57:42,529 ERROR [STDERR] 	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
09:57:42,529 ERROR [STDERR] 	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
09:57:42,529 ERROR [STDERR] 	at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
09:57:42,529 ERROR [STDERR] 	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
09:57:42,529 ERROR [STDERR] 	at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71)
09:57:42,529 ERROR [STDERR] 	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
09:57:42,529 ERROR [STDERR] 	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
09:57:42,529 ERROR [STDERR] 	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
09:57:42,529 ERROR [STDERR] 	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
09:57:42,530 ERROR [STDERR] 	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
09:57:42,530 ERROR [STDERR] 	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)
09:57:42,530 ERROR [STDERR] 	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
09:57:42,530 ERROR [STDERR] 	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
09:57:42,530 ERROR [STDERR] 	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:87)
09:57:42,530 ERROR [STDERR] 	at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:59)
09:57:42,530 ERROR [STDERR] 	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
09:57:42,530 ERROR [STDERR] 	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
09:57:42,530 ERROR [STDERR] 	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
09:57:42,530 ERROR [STDERR] 	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
09:57:42,531 ERROR [STDERR] 	at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
09:57:42,531 ERROR [STDERR] 	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
09:57:42,531 ERROR [STDERR] 	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
09:57:42,531 ERROR [STDERR] 	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
09:57:42,531 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
09:57:42,531 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
09:57:42,531 ERROR [STDERR] 	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
09:57:42,531 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
09:57:42,531 ERROR [STDERR] 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
09:57:42,531 ERROR [STDERR] 	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
09:57:42,531 ERROR [STDERR] 	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
09:57:42,531 ERROR [STDERR] 	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
09:57:42,531 ERROR [STDERR] 	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
09:57:42,531 ERROR [STDERR] 	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
09:57:42,531 ERROR [STDERR] 	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
09:57:42,532 ERROR [STDERR] 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
09:57:42,532 ERROR [STDERR] 	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
09:57:42,532 ERROR [STDERR] 	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
09:57:42,532 ERROR [STDERR] 	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
09:57:42,532 ERROR [STDERR] 	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
09:57:42,532 ERROR [STDERR] 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
09:57:42,532 ERROR [STDERR] 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
09:57:42,532 ERROR [STDERR] 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
09:57:42,532 ERROR [STDERR] 	at java.lang.Thread.run(Thread.java:662)
09:57:42,533 ERROR [STDERR] Caused by: java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage
09:57:42,533 ERROR [STDERR] 	at javax.xml.soap.SOAPMessage.setProperty(SOAPMessage.java:445)
09:57:42,533 ERROR [STDERR] 	at org.jboss.ws.core.soap.SOAPMessageImpl.<init>(SOAPMessageImpl.java:82)
09:57:42,533 ERROR [STDERR] 	at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:169)
09:57:42,533 ERROR [STDERR] 	at org.jboss.ws.core.CommonSOAP11Binding.createMessage(CommonSOAP11Binding.java:57)
09:57:42,533 ERROR [STDERR] 	at org.jboss.ws.core.CommonSOAPBinding.bindRequestMessage(CommonSOAPBinding.java:156)
09:57:42,533 ERROR [STDERR] 	at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:290)
09:57:42,533 ERROR [STDERR] 	at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:291)
09:57:42,533 ERROR [STDERR] 	... 55 more

javax.xml.ws.WebServiceException: java.lang.UnsupportedOperationException: setProperty must be overridden by all subclasses of SOAPMessage
será algum conflito tbm?

Obs.: Tentei rodar no Tomcat e rodou tranquilo, sem erros!

Vin_ius_Michelutti

Resolvido galera!

Este último problema era de fato do jboss. Apóś procurar na net, achei uma solução bem simples.
Se rodar o jboss pelo run.sh vai certo, porém se startar o jboss pelo eclipse gera o erro, tudo isto por causa de um esquema de libs endorsed.

Como resolvi foi simples, dando dois clicks no servidor dentro do eclipse, e clicando em options do lançador, adicionei o seguinte parametro:

-Djava.endorsed.dirs=/home/vinicius/Programas/jboss-5.0.0.GA/lib/endorsed

Fonte: http://rafaelliu.net/2008/05/08/setproperty-must-be-overridden-by-all-subclasses-of-soapmessage/

Criado 6 de março de 2012
Ultima resposta 7 de mar. de 2012
Respostas 4
Participantes 3