Boa tarde
Estou com um problema que ate hoje não tinha acontecido, é o seguinte
Estou criando um novo wbeService, depois de tudo pronto eu rodo o projeto, e nao acontece nenhum erro mas quando eu adiciono um novo WebService, apenas um deles funciona o outro de erro o tempo todo!
Alguem sabe como posso resolver esse problema??
Obrigado!
WebService
17 Respostas
O que você está usando para criar WebServices?
O problema é na hora da criação? Publicação? Geraçãod e WSDL? Consumo?
E o mais importante, qual o erro?
O erro acontece quando testo o WebService o erro é o seguinte:
Unable to open Web Service tester page:
aqui aparece o endereço onde esta o projeto
Make sure the service has been deployed successfuly, and the server is running
este é o erro, porem ele so acontece se tiver mais de um webservice no projeto, se eu rodar apenas um ele funciona perfeitamente!
Mandrak ,
Que tecnologia vc estah usando para desenvolver o WEb Services? Eh EJB3?
Pq se for eu tive um problema parecido relacionado com o “contextRoot” do web services. Com apenas um web services ia normalmente, porém quando colocava dois ou mais nao subia. No EJB3 existe uma annotation chamada @WebContext e dentre os parâmetros que existem nela, vc passa um chamado contextRoot que deve ser o nome do jar do seu projeto, aí isto permite que voce suba vários web services no mesmo contexto.
Isso deve resolver o seu problema caso vc esteja usando EJB3.
Se nao tiver usando EJB3, tente dar uma procurada com algo relacionado ao contextRoot da sua aplicação, pode ser q seja algo nessa área.
bacana isso que voce falou leonickel,
resolvi pegar o log do erro e colar!
PWC1382: Allocate exception for servlet Cidades javax.servlet.ServletException at com.sun.enterprise.webservice.JAXWSServlet.doInit(JAXWSServlet.java:260) at com.sun.enterprise.webservice.JAXWSServlet.init(JAXWSServlet.java:113) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1178) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:832) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:270) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212) at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:361) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Caused by: javax.xml.ws.WebServiceException: class servicos.jaxws.Alterar do not have a property of the name cidade at com.sun.xml.ws.server.sei.EndpointArgumentsBuilder$DocLit.(EndpointArgumentsBuilder.java:495) at com.sun.xml.ws.server.sei.EndpointMethodHandler.createArgumentsBuilder(EndpointMethodHandler.java:133) at com.sun.xml.ws.server.sei.EndpointMethodHandler.(EndpointMethodHandler.java:106) at com.sun.xml.ws.server.sei.PayloadQNameBasedDispatcher.(PayloadQNameBasedDispatcher.java:106) at com.sun.xml.ws.server.sei.EndpointMethodDispatcherGetter.(EndpointMethodDispatcherGetter.java:72) at com.sun.xml.ws.server.sei.SEIInvokerTube.(SEIInvokerTube.java:75) at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:204) at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:467) at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:510) at com.sun.enterprise.webservice.JAXWSServlet.registerEndpoint(JAXWSServlet.java:398) at com.sun.enterprise.webservice.JAXWSServlet.doInit(JAXWSServlet.java:252) … 29 more Caused by: javax.xml.bind.JAXBException: cidade is not a valid property on class servicos.jaxws.Alterar at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getElementPropertyAccessor(JAXBContextImpl.java:926) at com.sun.xml.ws.server.sei.EndpointArgumentsBuilder$DocLit.(EndpointArgumentsBuilder.java:484) … 39 more
Da uma olhada, nele pra voce ver o que pode ta ocasionando o erro!
cara, essa exception nao ajudou muito, estas duas linhas me deixaram confuso
javax.xml.ws.WebServiceException: class servicos.jaxws.Alterar do not have a property of the name cidade at
com.sun.enterprise.webservice.JAXWSServlet.doInit(JAXWSServlet.java:252) ... 29 more Caused by: javax.xml.bind.JAXBException: cidade is not a valid property on class servicos.jaxws.Alterar at
voce poderia descrever melhor como está a arquitetura do seu ws? qual classe tem a annotations @WebService, etc…
vc estah usando qual application server? Vc tentou colocar a anotação @WebContext ? Se voce tiver usando JBOSS, esta anotação fik no jar jbossws-spi.jar caso vc esteja rodando a versão 4.2.2.GA e para versão 4.2.0.GA ela fik no jar jbossws-core.jar.
Cara resolvi o problema…
Era o seguinte eu passei o mesmo parametro para duas funcoes diferentes.
Ex:
nomeId
@WebMethod(operationName = “bucarNomeId”)
public NomeId[] bucarNomeId(
@WebParam(name = “Nome”) String Nome,
@WebParam(name = "Id") String Id) {
public BancoBD[] buscarCompleto(
@WebParam(name = “Nome”) String Nome,
@WebParam(name = "Id") String Id) {
// TODO implementar operação
Apenas mudei o nome dos parametros e funcionou…
Brigado pela ajuda!
Abraços
Opa, que bom!!
De nada, precisando, posta mais ae!
[]'ssss!
Infelismente rolou mais um problema, depois que arrumei o erro anterios das variaveis…
Continua dando erro…
Segue abaixo o log do “novo erro”!
Log
PWC1382: Allocate exception for servlet Advogados
javax.servlet.ServletException at
com.sun.enterprise.webservice.JAXWSServlet.doInit(JAXWSServlet.java:260)
at
com.sun.enterprise.webservice.JAXWSServlet.init(JAXWSServlet.java:113)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1178) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:832) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632) at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080) at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:270) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212) at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:361) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) Caused by: javax.xml.ws.WebServiceException: class servicos.jaxws.Alterar do not have a property of the name Advogado at com.sun.xml.ws.server.sei.EndpointArgumentsBuilder$DocLit.(EndpointArgumentsBuilder.java:495) at com.sun.xml.ws.server.sei.EndpointMethodHandler.createArgumentsBuilder(EndpointMethodHandler.java:133) at com.sun.xml.ws.server.sei.EndpointMethodHandler.(EndpointMethodHandler.java:106) at com.sun.xml.ws.server.sei.PayloadQNameBasedDispatcher.(PayloadQNameBasedDispatcher.java:106) at com.sun.xml.ws.server.sei.EndpointMethodDispatcherGetter.(EndpointMethodDispatcherGetter.java:72) at com.sun.xml.ws.server.sei.SEIInvokerTube.(SEIInvokerTube.java:75) at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:204) at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:467) at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:510) at com.sun.enterprise.webservice.JAXWSServlet.registerEndpoint(JAXWSServlet.java:398) at com.sun.enterprise.webservice.JAXWSServlet.doInit(JAXWSServlet.java:252) … 29 more Caused by: javax.xml.bind.JAXBException: Advogado is not a valid property on class servicos.jaxws.Alterar at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getElementPropertyAccessor(JAXBContextImpl.java:926) at com.sun.xml.ws.server.sei.EndpointArgumentsBuilder$DocLit.(EndpointArgumentsBuilder.java:484) … 39 more
Quem puder da ajuda ai!!
Obrigado
Cara,
esse erro que tah dando agora parece ser igual ao anterior
repare nestes trechos do log
javax.xml.ws.WebServiceException: class servicos.jaxws.Alterar do not have a property of the name Advogado at
com.sun.enterprise.webservice.JAXWSServlet.doInit(JAXWSServlet.java:252) ... 29 more Caused by: javax.xml.bind.JAXBException: Advogado is not a valid property on class servicos.jaxws.Alterar at
existem estes mesmos trechos no log anterior, soh que com outros nossos para sua classe
No caso intaum teria que criar uma nova classe para cada função???
Cara agora funcionou perfeito!
Eh o seguinte, todos os WebServices tem que ter o neme do Method difetente,
vc deve criar por associação, tipo :
[color=red] @WebMethod(operationName = “buscarNomeId”)
public NomeId[] buscarNomeIdMateriais(@WebParam(name = “Nome”)[/color]
[color=red] @WebMethod(operationName = “buscarCompleto”)
public Materiais buscarCompletoMateriais(@WebParam(name = “Nome”)[/color]
Assim todos os WebServices vão funcionar perfeitamente!!
Mais uma vez obrigado pela ajuda.
Abraços
humm…a sua annotation @WebMethod esta com o nome do outro metodo e ai deu o problema, eh isso neh?..
uma duvida, vc precisa realmente colocar essa anotação @WebMethod em todos os seus métodos?
pq se vc colocou @WebService na classe, isso jah diz que todos os métodos serão webmethods, a menos q vc tenha uns q nao devem ser e outros q devem…
leonickel,
Exatamente isso estavam com o mesmo nome, não pode ser o mesmo nome!
Ja na parte do @WebMethod, ele é criado atomaticamente, pq eu crio um add operation, assim ele ja leva o @WebMethod para o web service!
Agora se eu preferir poderia criar na mão msm assim nao precisaria usar @WebMethod…
Não sei se fui claro na explicação, mas se vc nao entender post ai que eu respondo…
Qualquer duvida tamu ai…
Abraço!
opa, entendi sim o q vc disse,
vc deve usar algum processo automático que gera o método pra vc e assim já coloca a anotação.
sem problemas, foi soh um conselho mesmo, pq as vezes tem gente q nao gosta de fik colocando a anotação @WebMethod em todos os métodos, aí queria soh comentar que ela nao eh necessária.
boa sorte aih no ws pra vc heheheeh
[]'sss!!!
Isso mesmo cara!
Ele gera automatico …
Vou precisar de sorte mesmo… rsrs
To implantando ws aqui e é o nosso primeiro projeto,
por isso estamos tendo dúvidas!
valeu cara!
entendi,
aqui no trampo usamos ws há algum tempo, entao se vc tiver dúvidas manda msg ae q c eu souber eu tento ajudar 
boa sorte, flw!!!
Valeu cara, se surgir alguma dúvida
post aqui pra gente tentar resolver…
Brigado msm…