Peter Schilling [http://community.jboss.org/people/pschor] created the discussion
"Invoking a web service from JBoss AS as a client" To view the discussion, visit: http://community.jboss.org/message/564010#564010 -------------------------------------------------------------- I've been trying to figure this out for several days, any help will be appreciated. I'm trying to invoke a web service from a java class deployed in JBoss 5.1.0.GA running on JDK1.6.0. I get the exception below. The same method called from a plain Java object and invoked from a command line (using JDK's WS jars instead of JBoss') works perfectly. I copied the jboss-native-* classes to the endorsed directory (initally to resolve the SetProperty problem), but is there anything else that needs to be considered to invoke a service from JBoss as a client? Three things that are different from the case when the method is invoked successfully from the command line: ** In the request STDOUT the XML version header was removed (probably by SaveMessage). ** In the request STDOUT quotes were converted to apostrophes. ** Even thought the content type is set as text/xml, the error says content type is text/html Thanks for your help Peter The method and the output/error: try { // Create the SOAP connection SOAPConnectionFactory soapConnFactory = SOAPConnectionFactory.newInstance(); SOAPConnection connection = soapConnFactory.createConnection(); String soapText = "<?xml version=\"1.0\"?>" + "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\" http://schemas.xmlsoap.org/soap/envelope/ http://schemas.xmlsoap.org/soap/envelope/\"" + " SOAP-ENV:encodingStyle=\" http://schemas.xmlsoap.org/soap/encoding/ http://schemas.xmlsoap.org/soap/encoding/\">" + "<SOAP-ENV:Header/>" + "<SOAP-ENV:Body>" + "<Discover xmlns=\"urn:schemas-microsoft-com:xml-analysis\">" + "<RequestType>DISCOVER_DATASOURCES</RequestType>" + "<Restrictions><RestrictionList/></Restrictions>" + "<Properties><PropertyList><Format>Tabular</Format></PropertyList></Properties>" + "</Discover>" + "</SOAP-ENV:Body>" + "</SOAP-ENV:Envelope>"; // Create SoapMessage MessageFactory msgFactory = MessageFactory.newInstance(); SOAPMessage message = msgFactory.createMessage(); // Load the SOAP text into a stream source ByteArrayInputStream stream = new ByteArrayInputStream(soapText.getBytes()); StreamSource source = new StreamSource(stream); // Set contents of message message.getSOAPPart().setContent(source); MimeHeaders mh = message.getMimeHeaders(); mh.setHeader("Content-Type", "text/xml"); mh.setHeader("SOAPAction", "\"urn:schemas-microsoft-com:xml-analysis:Discover\""); //Save the message message.saveChanges(); //Check the input System.out.println("HEADERS:\n" ); Iterator<MimeHeader> i = message.getMimeHeaders().getAllHeaders(); while ( i.hasNext() ) { MimeHeader header = i.next(); String name = header.getName(); String value = header.getValue(); System.out.println ( name + ": " + value); } System.out.println("END HEADERS:\n" ); System.out.println("REQUEST:\n"); message.writeTo(System.out); System.out.println("END REQUEST:\n"); //Send the message and get a reply //Set the destination String destination = " http://localhost:7070/mondrian/xmla http://localhost:7070/mondrian/xmla"; //Send the message SOAPMessage reply = connection.call(message, destination); //Check the reply System.out.println("\nREPLY:\n"); reply.writeTo(System.out); System.out.println("\nEND REPLY:\n"); // Close the SOAP connection connection.close(); } catch(Exception e) { System.out.println(e.getMessage()); } } 20:50:45,855 INFO [STDOUT] HEADERS: 20:50:45,855 INFO [STDOUT] Content-Type: text/xml; charset=UTF-8 20:50:45,855 INFO [STDOUT] SOAPAction: "urn:schemas-microsoft-com:xml-analysis:Discover" 20:50:45,855 INFO [STDOUT] END HEADERS: 20:50:45,855 INFO [STDOUT] REQUEST: 20:50:45,855 INFO [STDOUT] <SOAP-ENV:Envelope xmlns:SOAP-ENV=' http://schemas.xmlsoap.org/soap/envelope/ http://schemas.xmlsoap.org/soap/envelope/' SOAP-ENV:encodingStyle=' http://schemas.xmlsoap.org/soap/encoding/ http://schemas.xmlsoap.org/soap/encoding/'><SOAP-ENV:Header></SOAP-ENV:Header><SOAP-ENV:Body> <Discover xmlns='urn:schemas-microsoft-com:xml-analysis'><RequestType>DISCOVER_DATASOURCES 20:50:45,855 INFO [STDOUT] </RequestType> 20:50:45,855 INFO [STDOUT] <Restrictions><RestrictionList/> 20:50:45,855 INFO [STDOUT] </Restrictions> 20:50:45,855 INFO [STDOUT] <Properties><PropertyList><Format>Tabular 20:50:45,855 INFO [STDOUT] </Format> 20:50:45,855 INFO [STDOUT] </PropertyList> 20:50:45,855 INFO [STDOUT] </Properties> 20:50:45,855 INFO [STDOUT] </Discover> 20:50:45,855 INFO [STDOUT] </SOAP-ENV:Body></SOAP-ENV:Envelope> 20:50:45,855 INFO [STDOUT] END REQUEST: 20:50:59,865 ERROR [SOAPMessageUnMarshallerHTTP] Cannot unmarshall SOAPMessage javax.xml.soap.SOAPException: Unsupported content type: text/html; charset=utf-8 at org.jboss.ws.core.soap.MessageFactoryImpl.createMessage(MessageFactoryImpl.java:272) at org.jboss.ws.core.soap.SOAPMessageUnMarshallerHTTP.read(SOAPMessageUnMarshallerHTTP.java:82) at org.jboss.remoting.transport.http.HTTPClientInvoker.readResponse(HTTPClientInvoker.java:570) at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:369) at org.jboss.remoting.transport.http.HTTPClientInvoker.makeInvocation(HTTPClientInvoker.java:231) at org.jboss.remoting.transport.http.HTTPClientInvoker.transport(HTTPClientInvoker.java:161) at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:165) at org.jboss.remoting.Client.invoke(Client.java:1724) at org.jboss.remoting.Client.invoke(Client.java:629) at org.jboss.ws.core.client.HTTPRemotingConnection.invoke(HTTPRemotingConnection.java:243) at org.jboss.ws.core.client.SOAPProtocolConnectionHTTP.invoke(SOAPProtocolConnectionHTTP.java:71) at org.jboss.ws.core.soap.SOAPConnectionImpl.callInternal(SOAPConnectionImpl.java:143) at org.jboss.ws.core.soap.SOAPConnectionImpl.call(SOAPConnectionImpl.java:64) at bizlayer.mdxquery.XmlaQuery.invokeXmlaService2(XmlaQuery.java:230) at org.apache.jsp.web.admin.testsoaclient_jsp._jspService(testsoaclient_jsp.java:61) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249) 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.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:829) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Unknown Source) 20:50:59,881 INFO [STDOUT] java.io.IOException: Could not transmit message -------------------------------------------------------------- Reply to this message by going to Community [http://community.jboss.org/message/564010#564010] Start a new discussion in JBoss Web Services at Community [http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2044]
_______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user