Axis Client + app desktop java.net.SocketException:Malformed reply from SOCKS [gambi-resolv]

4 respostas
S

Buenas!

Tenho um site feito em PHP, onde coloquei um webservice rodando (biblioteca nuSOAP) e tenho uma app java Swing que irá consumir este webservice, utilizando o Axis, versão 1.4

No meu ambiente de testes (local na empresa) está funcionando OK, porém ao trocar a url para o meu webservice que está online, e tentar chamar um método recebo a seguinte exception:

AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: java.net.SocketException: Malformed reply from SOCKS server
 faultActor: 
 faultNode: 
 faultDetail: 
        {http://xml.apache.org/axis/}stackTrace:java.net.SocketException: Malformed reply from SOCKS server
        at java.net.SocksSocketImpl.readSocksReply(SocksSocketImpl.java:90)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:429)
        at java.net.Socket.connect(Socket.java:525)
        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.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:153)
        at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:125)
        at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
        at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
        at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
        at org.apache.axis.client.Call.invoke(Call.java:2767)
        at org.apache.axis.client.Call.invoke(Call.java:2443)
        at org.apache.axis.client.Call.invoke(Call.java:2366)
        at org.apache.axis.client.Call.invoke(Call.java:1812)
        at atualizadorwsdl_pkg.AtualizadorwsdlBindingStub.autenticarUsuario(AtualizadorwsdlBindingStub.java:220)
        at br.com.insoft4.webservice.Consumidor.autenticarUsuario(Consumidor.java:69)
        at br.com.insoft4.util.AppViewUtil.autenticarSite(AppViewUtil.java:187)
        at br.com.insoft4.swing.AppView.autentic(AppView.java:110)
        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.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:662)
        at org.jdesktop.application.ApplicationAction.actionPerformed(ApplicationAction.java:698)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
        at java.awt.Component.processMouseEvent(Component.java:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

        {http://xml.apache.org/axis/}hostname:INSOFT-DESENV6

java.net.SocketException: Malformed reply from SOCKS server
        at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
        at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
        at org.apache.axis.client.Call.invoke(Call.java:2767)
        at org.apache.axis.client.Call.invoke(Call.java:2443)
        at org.apache.axis.client.Call.invoke(Call.java:2366)
        at org.apache.axis.client.Call.invoke(Call.java:1812)
        at atualizadorwsdl_pkg.AtualizadorwsdlBindingStub.autenticarUsuario(AtualizadorwsdlBindingStub.java:220)
        at br.com.insoft4.webservice.Consumidor.autenticarUsuario(Consumidor.java:69)
        at br.com.insoft4.util.AppViewUtil.autenticarSite(AppViewUtil.java:187)
        at br.com.insoft4.swing.AppView.autentic(AppView.java:110)
        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.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:662)
        at org.jdesktop.application.ApplicationAction.actionPerformed(ApplicationAction.java:698)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
        at java.awt.Component.processMouseEvent(Component.java:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.net.SocketException: Malformed reply from SOCKS server
        at java.net.SocksSocketImpl.readSocksReply(SocksSocketImpl.java:90)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:429)
        at java.net.Socket.connect(Socket.java:525)
        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.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:153)
        at org.apache.axis.components.net.DefaultSocketFactory.create(DefaultSocketFactory.java:125)
        at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
        at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
        at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
        ... 45 more

Tentei setar para utilizar o proxy da empresa, mas ocorre o mesmo erro.

[color=darkblue] Agora vem o interessante: tenho uma classe de testes para o webservice, e ela roda ok também! [/color]

Vi nesta thread http://www.guj.com.br/java/98641-client-activemq-nao-conecta-no-server-com-proxy-ativo que pode ter algum problema do Swing com proxys. Alguém já passou por isso?

4 Respostas

S

Boa tarde!

Alguém sabe se consigo efetuar debug do SOAP que está sendo enviado?

Tentei configurando o log4j como debug (estou usando apenas o cliente axis) , mas a única mensagem que recebi foi de anexos…

- Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
S

Tinha configurado errado o log4j. Agora apareceu a exception que realmente está ocorrendo e vou verificar o porque disto.

- MessageContext: setTargetService(atualizadorwsdlPort)
- org.apache.axis.i18n.resource::handleGetObject(noService10)
- Exception: 
org.apache.axis.ConfigurationException: No service named atualizadorwsdlPort is available
org.apache.axis.ConfigurationException: No service named atualizadorwsdlPort is available
        at org.apache.axis.configuration.FileProvider.getService(FileProvider.java:233)
        at org.apache.axis.AxisEngine.getService(AxisEngine.java:311)
        at org.apache.axis.MessageContext.setTargetService(MessageContext.java:756)
        at org.apache.axis.client.Call.invoke(Call.java:2690)
        at org.apache.axis.client.Call.invoke(Call.java:2443)
        at org.apache.axis.client.Call.invoke(Call.java:2366)
        at org.apache.axis.client.Call.invoke(Call.java:1812)
        at atualizadorwsdl_pkg.AtualizadorwsdlBindingStub.autenticarUsuario(AtualizadorwsdlBindingStub.java:220)
        at br.com.insoft4.webservice.Consumidor.autenticarUsuario(Consumidor.java:36)
        at br.com.insoft4.swing.Test$AutenticTask$1.run(Test.java:114)
        at java.lang.Thread.run(Thread.java:619)

        at org.apache.axis.configuration.FileProvider.getService(FileProvider.java:233)
        at org.apache.axis.AxisEngine.getService(AxisEngine.java:311)
        at org.apache.axis.MessageContext.setTargetService(MessageContext.java:756)
        at org.apache.axis.client.Call.invoke(Call.java:2690)
        at org.apache.axis.client.Call.invoke(Call.java:2443)
        at org.apache.axis.client.Call.invoke(Call.java:2366)
        at org.apache.axis.client.Call.invoke(Call.java:1812)
        at atualizadorwsdl_pkg.AtualizadorwsdlBindingStub.autenticarUsuario(AtualizadorwsdlBindingStub.java:220)
        at br.com.insoft4.webservice.Consumidor.autenticarUsuario(Consumidor.java:36)
        at br.com.insoft4.swing.Test$AutenticTask$1.run(Test.java:114)
        at java.lang.Thread.run(Thread.java:619)
- MessageContext: setServiceHandler(null)
S

Eu pareço um forever alone nesta thread, mas tudo bem ahuahauhaua

Testei os dois arquivos com o debug do Log4j (o form swing que dá erro e a minha classe de testes). Pelo que eu percebi, a diferença é que pelo Swing o xml não é enviado, retornando o Axis Fault.

- End element soapenv:Envelope
- org.apache.axis.i18n.resource::handleGetObject(empty00)
- NSPop (empty)
- org.apache.axis.i18n.resource::handleGetObject(setMsgForm)
- Setting current message form to: FORM_OPTIMIZED (currentMessage is now org.apache.axis.utils.ByteArray)
- Exit: SOAPPart::saveChanges(): org.apache.axis.utils.ByteArray@ecb281
- java.lang.reflect.InvocationTargetException
- Enter: SOAPPart ctor(FORM_FAULT)
- org.apache.axis.i18n.resource::handleGetObject(setMsgForm)
- Setting current message form to: FORM_FAULT (currentMessage is now org.apache.axis.AxisFault)
- Exit: SOAPPart ctor()
- org.apache.axis.i18n.resource::handleGetObject(toAxisFault00)
- Mapping Exception to AxisFault
- NSPush (32)
- org.apache.axis.i18n.resource::handleGetObject(empty00)
- NSPop (empty)
- NSPush (32)
- org.apache.axis.i18n.resource::handleGetObject(empty00)
- NSPop (empty)
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: java.net.SocketException: Malformed reply from SOCKS server
 faultActor: 
 faultNode: 
 faultDetail: 
        {http://xml.apache.org/axis/}stackTrace:java.net.SocketException: Malformed reply from SOCKS server

Já pela classe de teste eu recebo uma conexão http:

- End element soapenv:Envelope
- org.apache.axis.i18n.resource::handleGetObject(empty00)
- NSPop (empty)
- org.apache.axis.i18n.resource::handleGetObject(setMsgForm)
- Setting current message form to: FORM_OPTIMIZED (currentMessage is now org.apache.axis.utils.ByteArray)
- Exit: SOAPPart::saveChanges(): org.apache.axis.utils.ByteArray@4f80d6
- org.apache.axis.i18n.resource::handleGetObject(createdHTTP00)
- Created an insecure HTTP connection
- org.apache.axis.i18n.resource::handleGetObject(xmlSent00)
- XML sent:
- ---------------------------------------------------
- POST /insoft/index.php/webservice/index/ HTTP/1.0
Content-Type: text/xml; charset=utf-8
Accept: application/soap+xml, application/dime, multipart/related, text/*
User-Agent: Axis/1.4
Host: www.insoft4.com.br
Cache-Control: no-cache
Pragma: no-cache
SOAPAction: "urn:atualizadorwsdl#autenticarUsuario"
Content-Length: 504

E em ambos ocorre a exception que eu postei antes, do “No service named”…

S

Desabilitando as configurações de proxy do windows funciona. Vai entender…

Criado 12 de julho de 2011
Ultima resposta 13 de jul. de 2011
Respostas 4
Participantes 1