Problema web service

10/12/2011

0

Pessoal,

Estou criando um web service em Java usando o eclipse para acessa o Postgree, mas ta dando o erro abaixo:
java.lang.UnsupportedOperationException: An access occurred that is not valid.

Alguém poderia ajudar?
Rivaildo Junior

Rivaildo Junior

Responder

Posts

10/12/2011

Davi Costa

Cara nos contextualiza mais, manda o fontes os stacktrace completo, se usa mais algum framework..
att Davi
Responder

10/12/2011

Rivaildo Junior

Usei Apache 6.0, Axis2 e postgresql-8.3-607.jdbc2.jar

[ERROR] An access occurred that is not valid.
java.lang.UnsupportedOperationException: An access occurred that is not valid.
at org.apache.axis2.description.InOnlyAxisOperation.getMessage(InOnlyAxisOperation.java:117)
at org.apache.axis2.util.MessageContextBuilder.createOutMessageContext(MessageContextBuilder.java:183)
at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:37)
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:114)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:173)
at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:167)
at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:142)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
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.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
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:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)

Dá pra ter uma ideia do que seja?
Responder

10/12/2011

Rivaildo Junior

Segue a classe, é algo bem simples, apenas para estudo...


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

public class Acesso {

public static void inserirDados(int id, String desc, long valor) throws ClassNotFoundException, SQLException {

String url =jdbc:postgresql://localhost/Dados;
String usuario=postgres;
String senha = 123;

Class.forName(org.postgresql.Driver);

Connection con=null;

con=DriverManager.getConnection(url,usuario,senha);

System.out.println(Conexão realizada com sucesso.);
String insert = INSERT into \Despesas\ VALUES(+id+,+desc+,+valor+);
Statement st = con.createStatement();
st.executeUpdate(insert);
}
}
Responder

11/12/2011

Davi Costa

Dá uma conferida na url do postgres está faltando a porta, a porta default é 5432. Um exemplo seria assim:
jdbc:postgresql://localhost:5432/Dados


att Davi
Responder

11/12/2011

Rivaildo Junior

Tentei, mas o erro continua. Mais alguma sugestão?
Responder

11/12/2011

Davi Costa

Este erro é do client ou é do projeto que mantém o webservice, o stacktrace parece estar incompleto, não tem caused by...

Tenta ver isso e passa p gente

att Davi
Responder

11/12/2011

Rivaildo Junior

o Client dá esse erro...


SoapFault - faultcode: soapenv:Server faultstring: java.lang.UnsupportedOperationException: An access occurred that is not valid. faultactor: null detail: org.kxml2.kdom.Node@1c691f36
at org.ksoap2.serialization.SoapSerializationEnvelope.parseBody(SoapSerializationEnvelope.java:136)
at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:137)
at org.ksoap2.transport.Transport.parseResponse(Transport.java:100)
at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:195)
at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:95)
at WSConsumidor.webDados(WSConsumidor.java:24)
at Principal.main(Principal.java:11)
Responder

12/12/2011

Davi Costa

Já debugou a classe do webservice, no método mesmo em questão?
Para ver o erro, pq esses erros que vc postou estão genéricos, precisamos ir bem ao ponto mesmo... dá um system.out.printLn(teste), no início do método e nos seus trechos caso tenha dificuldade em debugar.. ai vc vai acompanhar o que está acontecendo.
att Davi
Responder

13/12/2011

Rivaildo Junior

Segue a classe cliente.


import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;


public class WSConsumidor {

public static void webDados(int id, String desc, long valor){
SoapObject requisicao = new SoapObject(
http://servicoModelo, inserirDados);
requisicao.addProperty(id, id);
requisicao.addProperty(desc, desc);
requisicao.addProperty(valor, valor);

SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.setOutputSoapObject(requisicao);
HttpTransportSE HttpTransport = new HttpTransportSE(
http://192.168.1.101:8080/TesteWebServices/services/somaServico?wsdl);
SoapPrimitive resultado = null;
try {
HttpTransport.call(urn:inserirDados, envelope);
resultado = (SoapPrimitive) envelope.getResponse();
} catch (Exception e) {
e.printStackTrace();
}
}

}

O erro ocorre na linha: resultado = (SoapPrimitive) envelope.getResponse();

A exceção é:

SoapFault - faultcode: soapenv:Server faultstring: java.lang.UnsupportedOperationException: An access occurred that is not valid. faultactor: null detail: org.kxml2.kdom.Node@398020cc
at org.ksoap2.serialization.SoapSerializationEnvelope.parseBody(SoapSerializationEnvelope.java:136)
at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:137)
at org.ksoap2.transport.Transport.parseResponse(Transport.java:100)
at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:195)
at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:95)
at WSConsumidor.webDados(WSConsumidor.java:25)
at Principal.main(Principal.java:11)

Responder

20/12/2011

Dyego Carmo

Qual implementacao de WebService vc esta usando ?
Responder

20/12/2011

Rivaildo Junior

Axis2
Responder

09/01/2012

Dyego Carmo

Tentou usar o JAX-WS ? É bem mais facil e igualmente poderoso.
Responder

09/01/2012

Rivaildo Junior

Ainda não conheço o JAX-WS, mas vou pesquisar a respeito.
Sabe onde posso encontrar material a respeito do JAX-WS?

Obrigado pela dica.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar