[RESOLVIDO]WebService + VRaptor 3.1.2

22 respostas
D

Bom dia,

Estou tentando implementar um WebService junto com o VRaptor, porém está ocorrendo uns erros ao inicializar o projeto.

O erro ocorre quando adiciono um construtor na classe webservice, conforme o código abaixo:

import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;

import br.com.caelum.vraptor.Resource;
import br.com.empresa.outros.SessionInfo;
import br.com.empresa.service.ContagemColetaService;

@Resource
@WebService(serviceName = "CLogWS")
public class CLogWS {
	private SessionInfo sessionInfo;
    private ContagemColetaService contagemColetaService;
	    
	public CLogWS(SessionInfo sessionInfo, ContagemColetaService contagemColetaService){
		this.sessionInfo = sessionInfo;
		this.contagemColetaService = contagemColetaService;
	}
	
    @WebMethod(operationName = "hello")
    public String hello(@WebParam(name = "name") String txt) {
        return "Hello " + txt + " !";
    }
   
    @WebMethod(operationName = "getColeta")
    public String getColeta(@WebParam(name = "placa") String placa) {
    	System.out.println("Veículo " + placa + " !");
        return "Veículo " + placa + " !";
    }

}

Log de erro:

25/07/2011 10:44:51 com.sun.xml.ws.api.server.InstanceResolver createNewInstance
SEVERE: br.com.empresa.webservice.CLogWS
java.lang.InstantiationException: br.com.empresa.webservice.CLogWS
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at com.sun.xml.ws.api.server.InstanceResolver.createNewInstance(InstanceResolver.java:215)
	at com.sun.xml.ws.api.server.InstanceResolver.createDefault(InstanceResolver.java:180)
	at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:123)
	at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:505)
	at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parseAdapters(DeploymentDescriptorParser.java:253)
	at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(DeploymentDescriptorParser.java:147)
	at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:124)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
25/07/2011 10:44:51 com.sun.xml.ws.transport.http.servlet.WSServletContextListener contextInitialized
SEVERE: WSSERVLET11: failed to parse runtime descriptor: [failed to localize] WSSERVLET43: failed to instantiate service implementor for port "class br.com.empresa.webservice.CLogWS"()
com.sun.xml.ws.server.ServerRtException: [failed to localize] WSSERVLET43: failed to instantiate service implementor for port "class br.com.empresa.webservice.CLogWS"()
	at com.sun.xml.ws.api.server.InstanceResolver.createNewInstance(InstanceResolver.java:218)
	at com.sun.xml.ws.api.server.InstanceResolver.createDefault(InstanceResolver.java:180)
	at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:123)
	at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:505)
	at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parseAdapters(DeploymentDescriptorParser.java:253)
	at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(DeploymentDescriptorParser.java:147)
	at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:124)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
25/07/2011 10:44:51 org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class com.sun.xml.ws.transport.http.servlet.WSServletContextListener
com.sun.xml.ws.transport.http.servlet.WSServletException: WSSERVLET11: failed to parse runtime descriptor: [failed to localize] WSSERVLET43: failed to instantiate service implementor for port "class br.com.empresa.webservice.CLogWS"()
	at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:139)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: com.sun.xml.ws.server.ServerRtException: [failed to localize] WSSERVLET43: failed to instantiate service implementor for port "class br.com.empresa.webservice.CLogWS"()
	at com.sun.xml.ws.api.server.InstanceResolver.createNewInstance(InstanceResolver.java:218)
	at com.sun.xml.ws.api.server.InstanceResolver.createDefault(InstanceResolver.java:180)
	at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:123)
	at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:505)
	at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parseAdapters(DeploymentDescriptorParser.java:253)
	at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(DeploymentDescriptorParser.java:147)
	at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized(WSServletContextListener.java:124)
	... 15 more

22 Respostas

L

então, vc não vai conseguir fazer isso…

não é o vraptor que vai instanciar essa classe na hora de invocar o webservice, é o container. e pro container o construtor não pode ter argumentos.

dá uma pesquisada em CDI, que ele vai conseguir fazer o que vc quer

D

Bom dia Lucas!

Estou usando uma solução com o próprio VRaptor. O método do webservice recebe o chamado e o mesmo chama uma uri de uma classe controller, onde o VRaptor entra em ação.

WebService:

@WebMethod(operationName = "getColeta")
    public String getColeta(@WebParam(name = "placa") String placa) {
        try {
            URL url = new URL("http://localhost:8080/CLog/ws.getcoleta_" + placa);
            url.openConnection();
           String str = url.getContent();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return "Veículo " + placa + " !";
    }

Método, para testes, no controller:

@Path("/ws.getcoleta_{placa}")
    @Transactional
    public String getcoleta(String placa) {
        Ordem ordem = ordemService.buscarPlaca(placa);
        if (ordem != null) {
            return "Sucess";
        }
        return "False";
    }

Porém, no final da execução do método acima, ocorre o seguinte erro:

Erro ao finalizar transação
org.apache.tiles.definition.NoSuchDefinitionException: webservice.getcoleta
26/07/2011 09:13:37 org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet TilesDispatchServlet threw exception
org.apache.tiles.definition.NoSuchDefinitionException: webservice.getcoleta
	at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:624)
	at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:322)
	at org.apache.tiles.web.util.TilesDispatchServlet.doGet(TilesDispatchServlet.java:99)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	at br.com.caelum.vraptor.view.DefaultPageResult.forward(DefaultPageResult.java:67)
	at br.com.caelum.vraptor.extra.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:59)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.OutjectResult.intercept(OutjectResult.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:75)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.rkam.clog.interceptor.NoCacheInterceptor.intercept(NoCacheInterceptor.java:38)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.rkam.clog.interceptor.HibernateTransactionInterceptor.intercept(HibernateTransactionInterceptor.java:51)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	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 br.com.rkam.clog.outros.DisableUrlSessionFilter.doFilter(DisableUrlSessionFilter.java:59)
	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:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
	at java.lang.Thread.run(Unknown Source)
	at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:624)
	at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:322)
	at org.apache.tiles.web.util.TilesDispatchServlet.doGet(TilesDispatchServlet.java:99)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	at br.com.caelum.vraptor.view.DefaultPageResult.forward(DefaultPageResult.java:67)
	at br.com.caelum.vraptor.extra.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:59)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.OutjectResult.intercept(OutjectResult.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:75)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.rkam.clog.interceptor.NoCacheInterceptor.intercept(NoCacheInterceptor.java:38)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.rkam.clog.interceptor.HibernateTransactionInterceptor.intercept(HibernateTransactionInterceptor.java:51)
	at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	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 br.com.rkam.clog.outros.DisableUrlSessionFilter.doFilter(DisableUrlSessionFilter.java:59)
	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:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
	at java.lang.Thread.run(Unknown Source)
Iniciando CPR - localhost
java.net.UnknownServiceException: no content-type
	at java.net.URLConnection.getContentHandler(Unknown Source)
	at java.net.URLConnection.getContent(Unknown Source)
	at java.net.URL.getContent(Unknown Source)
	at br.com.rkam.clog.webservice.CLogWS.getcoleta(CLogWS.java:25)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.sun.xml.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:246)
	at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:146)
	at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:257)
	at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:95)
	at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:629)
	at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:588)
	at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:573)
	at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:470)
	at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:295)
	at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:519)
	at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:288)
	at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:143)
	at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doGet(WSServletDelegate.java:155)
	at com.sun.xml.ws.transport.http.servlet.WSServletDelegate.doPost(WSServletDelegate.java:189)
	at com.sun.xml.ws.transport.http.servlet.WSServlet.doPost(WSServlet.java:76)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at br.com.caelum.vraptor.resource.DefaultResourceNotFoundHandler.couldntFind(DefaultResourceNotFoundHandler.java:41)
	at br.com.rkam.clog.resolver.Error404.couldntFind(Error404.java:33)
	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:65)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	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 br.com.rkam.clog.outros.DisableUrlSessionFilter.doFilter(DisableUrlSessionFilter.java:59)
	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:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
	at java.lang.Thread.run(Unknown Source)
O

Bom dia.

Cara seguinte, se você olhar isso que esta fazendo vai perceber que é uma solução para que as coisas de certo.

Mais não é o correto a fazer, se seu objetivo é criar uma camada SOAP para os clients, não é interessante você fazer essa camada fazer uma requisição http a mais.

Se a ideia é injetar os services da uma olhada como a classe org.springframework.web.context.support.SpringBeanAutowiringSupport do spring.

Veja como fazer algum adaptador do DI do VRaptor seguindo essa ideia.

Att,

D

Caio, obrigado pela idéia. Não sei como fazer mas vou pesquisar.

O

Se você tiver usando spring como provider do VRaptor tente colocar:

<listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener>
E faça.

CLogWS  extends SpringBeanAutowiringSupport

@Autowired private ContagemColetaService contagemColetaService;

Veja se funciona.

D

Caio, eu não tenho um arquivo de configuração do Spring, então adiciono o <listener> no web.xml?

O

Isso ai. Depois da uma olhada em Servlet Listener

D

Caio, fiz as alterações, porém quando chama o método do webservices dá o seguinte erro:

26/07/2011 11:32:41 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet CLogWS threw exception
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'multipartInterceptor': Unsatisfied dependency expressed through constructor argument with index 0 of type [javax.servlet.http.HttpServletRequest]: : Error creating bean with name 'httpServletRequestProvider': FactoryBean threw exception on object creation; nested exception is java.lang.NullPointerException; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'httpServletRequestProvider': FactoryBean threw exception on object creation; nested exception is java.lang.NullPointerException
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:698)
	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:192)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:984)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:886)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:479)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
	at org.springframework.beans.factory.support.AbstractBeanFactory$2.getObject(AbstractBeanFactory.java:328)
	at org.springframework.web.context.request.AbstractRequestAttributesScope.get(AbstractRequestAttributesScope.java:43)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:385)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:375)
	at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1069)
	at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors(BeanFactoryUtils.java:221)
	at br.com.caelum.vraptor.ioc.spring.VRaptorApplicationContext.getBean(VRaptorApplicationContext.java:251)
	at br.com.caelum.vraptor.ioc.spring.SpringBasedContainer.instanceFor(SpringBasedContainer.java:59)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:47)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:47)
	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 br.com.empresa.clog.outros.DisableUrlSessionFilter.doFilter(DisableUrlSessionFilter.java:59)
	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:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:856)
	at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:565)
	at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1509)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'httpServletRequestProvider': FactoryBean threw exception on object creation; nested exception is java.lang.NullPointerException
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:150)
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:109)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1387)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:244)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:189)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:820)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:762)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:680)
	at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:771)
	at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:691)
	... 36 more
Caused by: java.lang.NullPointerException
	at br.com.caelum.vraptor.ioc.spring.HttpServletRequestProvider.getObject(HttpServletRequestProvider.java:36)
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:143)
	... 45 more
O

Cara posta as classes e os arquivos de configuração ai.

D

Ok!

A classe do WebService:

package br.com.empresa.clog.webservice;

import java.net.URL;
import java.util.List;

import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;

import org.hibernate.Session;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;

import br.com.empresa.clog.model.Ordem;
import br.com.empresa.clog.service.OrdemService;

@WebService(serviceName = "CLogWS")
public class CLogWS extends SpringBeanAutowiringSupport{

    private Session session;
    @Autowired
    private OrdemService ordemService; 

    @WebMethod(operationName = "hello")
    public String hello(@WebParam(name = "name") String txt) {
        return "Hello " + txt + " !";
    }

    @WebMethod(operationName = "getcoleta")
    public String getcoleta(@WebParam(name = "placa") String placa) {
    	System.out.println("Placa: " + placa);
    	List&lt;Ordem&gt; ordem = ordemService.buscarPlaca(placa);
    	String str = null;
        try {
            //URL url = new URL("http://localhost:8080/CLog/ws.getcoleta_" +  placa);
            //url.openConnection();
           //str = url.getContent().toString();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return "Veículo " + placa + " !";
    }

	public OrdemService getOrdemService() {
		return ordemService;
	}
	
	public void setOrdemService(OrdemService ordemService) {
		this.ordemService = ordemService;
	}
}

Arquivo web.xml:

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"&gt;
    &lt;display-name&gt;CLog&lt;/display-name&gt;
    &lt;listener&gt;
        &lt;listener-class&gt;com.sun.xml.ws.transport.http.servlet.WSServletContextListener&lt;/listener-class&gt;
    &lt;/listener&gt;
	&lt;listener&gt;
        &lt;listener-class&gt;org.springframework.web.context.request.RequestContextListener&lt;/listener-class&gt;
    &lt;/listener&gt;
    &lt;servlet&gt;
        &lt;servlet-name&gt;tiles&lt;/servlet-name&gt;
        &lt;servlet-class&gt;org.apache.tiles.web.startup.TilesServlet&lt;/servlet-class&gt;
        &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
    &lt;/servlet&gt;
    &lt;listener&gt;
        &lt;listener-class&gt;org.apache.tiles.web.startup.TilesListener&lt;/listener-class&gt;
    &lt;/listener&gt;
    &lt;servlet&gt;
        &lt;servlet-name&gt;TilesDispatchServlet&lt;/servlet-name&gt;
        &lt;servlet-class&gt;org.apache.tiles.web.util.TilesDispatchServlet&lt;/servlet-class&gt;
        &lt;load-on-startup&gt;2&lt;/load-on-startup&gt;
    &lt;/servlet&gt;
    &lt;servlet&gt;
        &lt;servlet-name&gt;InicializaCPR&lt;/servlet-name&gt;
        &lt;servlet-class&gt;br.com.empresa.clog.utils.cpr.InicializaCPR&lt;/servlet-class&gt;
        &lt;load-on-startup&gt;2&lt;/load-on-startup&gt;
    &lt;/servlet&gt;
    &lt;servlet&gt;
        &lt;servlet-name&gt;CLogWS&lt;/servlet-name&gt;
        &lt;servlet-class&gt;com.sun.xml.ws.transport.http.servlet.WSServlet&lt;/servlet-class&gt;
        &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
    &lt;/servlet&gt;
    &lt;servlet-mapping&gt;
        &lt;servlet-name&gt;TilesDispatchServlet&lt;/servlet-name&gt;
        &lt;url-pattern&gt;*.tiles&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;
    &lt;context-param&gt;
        &lt;param-name&gt;javax.servlet.jsp.jstl.fmt.localizationContext&lt;/param-name&gt;
        &lt;param-value&gt;messages&lt;/param-value&gt;
    &lt;/context-param&gt;
    &lt;context-param&gt;
        &lt;param-name&gt;br.com.caelum.vraptor.packages&lt;/param-name&gt;
        &lt;param-value&gt;br.com.caelum.vraptor.rest,br.com.empresa.clog&lt;/param-value&gt;
    &lt;/context-param&gt;
    &lt;context-param&gt;
        &lt;param-name&gt;br.com.caelum.vraptor.provider&lt;/param-name&gt;
        &lt;param-value&gt;br.com.empresa.clog.provider.CustomProvider&lt;/param-value&gt;
    &lt;/context-param&gt;
    &lt;servlet-mapping&gt;
        &lt;servlet-name&gt;InicializaCPR&lt;/servlet-name&gt;
        &lt;url-pattern&gt;/InicializaCPR&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;
    &lt;servlet-mapping&gt;
        &lt;servlet-name&gt;CLogWS&lt;/servlet-name&gt;
        &lt;url-pattern&gt;/CLogWS&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;
    &lt;session-config&gt;
        &lt;session-timeout&gt;600&lt;/session-timeout&gt;
    &lt;/session-config&gt;
    &lt;filter&gt;
        &lt;filter-name&gt;DisableUrlSessionFilter&lt;/filter-name&gt;
        &lt;filter-class&gt;br.com.empresa.clog.outros.DisableUrlSessionFilter&lt;/filter-class&gt;
    &lt;/filter&gt;
    &lt;filter-mapping&gt;
        &lt;filter-name&gt;DisableUrlSessionFilter&lt;/filter-name&gt;
        &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    &lt;/filter-mapping&gt;
    &lt;filter&gt;
        &lt;filter-name&gt;vraptor&lt;/filter-name&gt;
        &lt;filter-class&gt;br.com.caelum.vraptor.VRaptor&lt;/filter-class&gt;
    &lt;/filter&gt;
    &lt;filter-mapping&gt;
        &lt;filter-name&gt;vraptor&lt;/filter-name&gt;
        &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
        &lt;dispatcher&gt;REQUEST&lt;/dispatcher&gt;
    &lt;/filter-mapping&gt;
    &lt;welcome-file-list&gt;
        &lt;welcome-file&gt;/index.jsp&lt;/welcome-file&gt;
    &lt;/welcome-file-list&gt;
&lt;/web-app&gt;
L

o webservice não está dentro de uma requisição, então nenhum componente/bean configurado em escopos de request e session vai funcionar.

o seu erro tem a ver com seu template do tiles:

org.apache.tiles.definition.NoSuchDefinitionException: webservice.getcoleta

vc tá tentando usar o webservice dentro do tiles, mas ele não está no escopo, ou algo do tipo

D

Boa tarde Lucas,

Esse erro do tiles já resolvi. Isso ocorria quando eu utilizava a solução em que o webservices chamava o controller. Obrigado!

O

Então fecho o problema?

Caso sim coloca com resolvido para nós.

D

Boa tarde Caio,

O primeiro erro que postei é referente ao tiles, que ocorria quando a classe do webservice chamava o método do controller. Daí você deu a idéia de usar o spring. Mas aplicando as alterações sugeridas por você para para resolver o problema usando o Spring gerou o segundo erro. Esse segundo erro ainda não consegui resolver. Desculpa pelo mal entendido.

L

a causa do segundo erro é que o webservice não é executado dentro de um request… então qualquer componente que é request scoped ou session scoped não vai funcionar

O

Cara uma coisa que você pode fazer também é no caso do WebService não mandar injetar direto.

public <T> T getBean(Class<T> type) {
		ServletContext servletContext = VRaptorRequestHolder.currentRequest().getServletContext();
		
		BasicConfiguration config = new BasicConfiguration(servletContext);
		ApplicationContext applicationContext = new DefaultSpringLocator().getApplicationContext(servletContext);
		SpringBasedContainer container = new SpringBasedContainer(applicationContext, config);
		
		container.start(servletContext);
		
		return container.instanceFor(type);
	}

No seu @WebMethod você pede para o container criar a instancia assim.

ClienteService clienteService = getBean(ClienteService.class);
O

O único problema ai é que ele fica fazendo

container.start(servletContext);

Se tiver um jeito de pegar o container ou ou provider que abre no filtro dai ficá certinho.

L

faça o seguinte:

@Component
@ApplicationScoped
public class ContainerRoubadoMaster {
      private static Container container;
 
     public ContainerRoubadoMaster(Container container) {
            ContainerRoubadoMaster.container = container;
     }
     @PostConstruct
     public void gambiarraPraEssaClasseRodarNaInicializacao() {
     }

     public static <T> T instanceFor(Class<T> clazz) {
         return container.instanceFor(clazz);
     }
}

e use essa classe no webservice

D

Caio e Lucas,

Obrigado pelas dicas e ajudas, mas terminei implementando uma outra solução. Alterei a aplicação j2me para chamar o método do controller, assim não preciso mais de webservice.

Abraço!

O

Rs.

Só para ficar registrado é possível sim utilizar os Componentes do VRaptor com JaxWs.

Basta expor o container de alguma forma, com a solução ?ContainerRoubadoMaster? do Lucas basta você pegar Componentes com o método ?instanceFor?.

Esse foi meu primeiro contato com o VRaptor e a impressão foi muito boa.

C

E no caso de eu conseguir usar JSON, que o VRaptor já fornece, para integrar com outros sistemas, como eu faria para fazer INSERT de uma aplicação externa para o controller do VRaptor usando JSON?

L

vc pode transformar o json no objeto que vc quer inserir no banco, e fazer isso.

Criado 25 de julho de 2011
Ultima resposta 14 de fev. de 2012
Respostas 22
Participantes 4