You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Kumuda Bhaskar <Ku...@symphonysv.com> on 2005/09/28 11:19:10 UTC
[Axis2]-.Net I hope somebody will surely help me this time.
Hi,
I was trying to call the .Net webservice from Axis2 client. I am using
axis2-0.92 the latest....
I am getting the following Exception
org.apache.axis2.AxisFault: null; nested exception is:
javax.xml.stream.XMLStreamException
at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUti
ls.java:97)
at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUti
ls.java:47)
at
org.apache.axis2.clientapi.TwoWayTransportBasedSender.send(TwoWayTranspo
rtBasedSender.java:53)
at
org.apache.axis2.clientapi.InOutMEPClient.invokeBlocking(InOutMEPClient.
java:177)
at com.hyperion.tcp.TCPClient.main(TCPClient.java:46)
Caused by: javax.xml.stream.XMLStreamException
at com.bea.xml.stream.MXParser.checkForXMLDecl(MXParser.java:712)
at com.bea.xml.stream.MXParser.setInput(MXParser.java:721)
at
com.bea.xml.stream.MXParserFactory.createXMLStreamReader(MXParserFactory
.java:235)
at
com.bea.xml.stream.MXParserFactory.createXMLStreamReader(MXParserFactory
.java:64)
at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUti
ls.java:89)
... 4 more
Exception in thread "main"
>From port peeker, I found that the xml that is being created by Axis2
client is
<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns="http://www.w3.org/2001/XMLSchema-instance"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"><soapenv:He
ader><wsa:Action>http://stockservice.contoso.com/wse/samples/2003/06/Con
cat</wsa:Action><wsa:MessageID>uuid:b6272374-e72a-464d-8af2-76199b15aea1
</wsa:MessageID><wsa:ReplyTo><wsa:Address>http://schemas.xmlsoap.org/ws/
2004/03/addressing/role/anonymous</wsa:Address></wsa:ReplyTo><wsa:To>soa
p://stockservice.contoso.com/wse/samples/2003/06/TcpSyncStockService</ws
a:To></soapenv:Header><soapenv:Body><v:Concat
xmlns:v="http://stockservice.contoso.com/wse/samples/2003/06/Concat"><v:
FirstStr>Hello </v:FirstStr><v:SecondStr>
World</v:SecondStr></v:Concat></soapenv:Body></soapenv:Envelope>
Axis2 client souce code is as follows
/*
* Copyright 2004,2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyperion.hfm.acistcptest;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.clientapi.Call;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.ConfigurationContextFactory;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.ServiceContext;
import org.apache.axis2.description.OperationDescription;
import org.apache.axis2.description.ServiceDescription;
import org.apache.axis2.description.TransportOutDescription;
import org.apache.axis2.soap.SOAPEnvelope;
import org.apache.axis2.soap.SOAPFactory;
import org.apache.axis2.transport.TransportSender;
import org.apache.axis2.transport.tcp.TCPTransportSender;
import org.apache.axis2.engine.AxisConfigurationImpl;
import org.apache.axis2.addressing.om.AddressingHeaders;
import org.apache.axis2.om.OMAbstractFactory;
import org.apache.axis2.om.OMDocument;
import org.apache.axis2.om.OMElement;
import org.apache.axis2.om.OMFactory;
import org.apache.axis2.om.OMNamespace;
import org.apache.axis2.addressing.om.*;
import javax.xml.namespace.QName;
import org.apache.axis2.clientapi.MessageSender;
import javax.xml.stream.FactoryConfigurationError;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;
/**
* This is a Client progam that accesses 'MyService' web service in
Axis2 samples
*/
public class AxisClient {
private static String toEpr =
"soap.tcp://blrl2790:2342/StockService";
public static void main(String[] args) throws AxisFault {
EndpointReference wsaTo = new
EndpointReference("soap://stockservice.contoso.com/wse/samples/2003/06/T
cpSyncStockService");
AddressingHeaders headers = new AddressingHeaders(wsaTo,
"http://stockservice.contoso.com/wse/samples/2003/06/StockQuoteRequest")
;
MessageContext requestContext = null;
//FaxReceive.request(new TFaxReceive(account,
password));
QName opName = new
QName("soap://stockservice.contoso.com/wse/samples/2003/06/TcpSyncStockS
ervice", "GetStockQuotes");
OperationDescription opdesc = new OperationDescription(opName);
EndpointReference targetEPR = new EndpointReference(toEpr);
org.apache.axis2.clientapi.Call call = new
org.apache.axis2.clientapi.Call();
call.setTo(targetEPR);
call.engageModule(new QName(Constants.MODULE_ADDRESSING));
call.setWsaAction("http://stockservice.contoso.com/wse/samples/2003/06/S
tockQuoteRequest");
call.setTransportInfo(Constants.TRANSPORT_TCP,
Constants.TRANSPORT_TCP, false);
ConfigurationContextFactory fac = new
ConfigurationContextFactory();
ConfigurationContext configContext =
fac.buildClientConfigurationContext("StockQuoteRequest");
try {
requestContext = new MessageContext(configContext);
} catch (AxisFault axisFault) {
axisFault.printStackTrace();
}
SOAPFactory factory = OMAbstractFactory.getSOAP11Factory();
OMNamespace ns1 =
factory.createOMNamespace("http://stockservice.contoso.com/wse/samples/2
003/06","NS1");
SOAPEnvelope envelope = factory.getDefaultEnvelope();
OMElement operation =
factory.createOMElement("StockQuoteRequest",ns1);
envelope.getBody().addChild(operation);
OMElement first = factory.createOMElement("symbols", ns1);
//OMElement second = fac.createOMElement("Symbol");
OMElement value = factory.createOMElement("Symbol", ns1);
value.addChild(factory.createText(value, "FABRIKAM"));
first.addChild(value);
operation.addChild(first);
requestContext.setEnvelope(envelope);
call.invokeBlocking(opdesc, requestContext);
//OMElement result =
// (OMElement) call.invokeBlocking("GetStockQuotes",
getPayload());
//call.close();
/*OMFactory fac = OMAbstractFactory.getOMFactory();
String tryThisNamespace =
"http://stockservice.contoso.com/wse/samples/2003/06/tryThis";
OMNamespace omNs = fac.createOMNamespace(tryThisNamespace,
"xmlns");
OMElement method = fac.createOMElement("tryThis", omNs);
OMElement value = fac.createOMElement("Text", omNs);
value.addChild(fac.createText(value, "Axis2 Ping String "));
method.addChild(value);
MessageSender msgSender = new MessageSender();
msgSender.setTo(targetEPR);
msgSender.setSenderTransport(Constants.TRANSPORT_TCP);
msgSender.engageModule(new QName(Constants.MODULE_ADDRESSING));
msgSender.setWsaAction(tryThisNamespace);
msgSender.send("tryThis", method);
*/
/*TCPTransportSender sender = new TCPTransportSender();
sender.startSendWithToAddress(new MessageContext(), new
OutputStream)
sender.finalizeSendWithToAddress(new MessageContext(), )
Call call = new Call();
call.setTo(new EndpointReference(toEpr));
call.setTransportInfo(Constants.TRANSPORT_TCP,
Constants.TRANSPORT_TCP,
false);*/
//call.engageModule(new QName(Constants.MODULE_ADDRESSING));
/*OMElement result = call.invokeBlocking("echo", getPayload());
//OMElement result = call.i("echo", getPayload());
try {
XMLStreamWriter writer = XMLOutputFactory.newInstance()
.createXMLStreamWriter(System.out);
result.serializeWithCache(writer);
writer.flush();
} catch (XMLStreamException e) {
e.printStackTrace();
} catch (FactoryConfigurationError e) {
e.printStackTrace();
}*/
}
private static OMElement getPayload() {
OMFactory fac = OMAbstractFactory.getOMFactory();
OMDocument doc = fac.createOMDocument();
String tryThisNamespace =
"http://stockservice.contoso.com/wse/samples/2003/06/tryThis";
OMNamespace omNs = fac.createOMNamespace(
"http://stockservice.contoso.com/wse/samples/2003/06",
"StockQuoteRequest");
//OMNamespace omNs = fac.createOMNamespace(tryThisNamespace,
"v");
//OMElement method = fac.createOMElement("tryThis", omNs);
OMElement method = fac.createOMElement("StockQuoteRequest",
omNs);
OMElement first = fac.createOMElement("symbols", omNs);
//OMElement second = fac.createOMElement("Symbol");
OMElement value = fac.createOMElement("Symbol", omNs);
value.addChild(fac.createText(value, "FABRIKAM"));
first.addChild(value);
method.addChild(first);
//doc.setDocumentElement(method);
//return doc.getDocumentElement();
return method;
}
}
Re: [Axis2]-.Net I hope somebody will surely help me this time.
Posted by Deepal Jayasinghe <de...@opensource.lk>.
Hi Kumoda;
You have got that problem due to your Inputstream is null and you re trying to create SOAPMessage out of that , and the problem is not in your code it in Axis2 side . We have found the problem it is due to transport receivers problem we will fix that soon , if you can please create a JIRA issue too.
Thanks,
Deepal
................................................................
~Future is Open~
----- Original Message -----
From: Kumuda Bhaskar
To: axis-user@ws.apache.org
Sent: Wednesday, September 28, 2005 3:19 PM
Subject: [Axis2]-.Net I hope somebody will surely help me this time.
Hi,
I was trying to call the .Net webservice from Axis2 client. I am using axis2-0.92 the latest..
I am getting the following Exception
org.apache.axis2.AxisFault: null; nested exception is:
javax.xml.stream.XMLStreamException
at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:97)
at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:47)
at org.apache.axis2.clientapi.TwoWayTransportBasedSender.send(TwoWayTransportBasedSender.java:53)
at org.apache.axis2.clientapi.InOutMEPClient.invokeBlocking(InOutMEPClient.java:177)
at com.hyperion.tcp.TCPClient.main(TCPClient.java:46)
Caused by: javax.xml.stream.XMLStreamException
at com.bea.xml.stream.MXParser.checkForXMLDecl(MXParser.java:712)
at com.bea.xml.stream.MXParser.setInput(MXParser.java:721)
at com.bea.xml.stream.MXParserFactory.createXMLStreamReader(MXParserFactory.java:235)
at com.bea.xml.stream.MXParserFactory.createXMLStreamReader(MXParserFactory.java:64)
at org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:89)
... 4 more
Exception in thread "main"
From port peeker, I found that the xml that is being created by Axis2 client is
<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"><soapenv:Header><wsa:Action>http://stockservice.contoso.com/wse/samples/2003/06/Concat</wsa:Action><wsa:MessageID>uuid:b6272374-e72a-464d-8af2-76199b15aea1</wsa:MessageID><wsa:ReplyTo><wsa:Address>http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous</wsa:Address></wsa:ReplyTo><wsa:To>soap://stockservice.contoso.com/wse/samples/2003/06/TcpSyncStockService</wsa:To></soapenv:Header><soapenv:Body><v:Concat xmlns:v="http://stockservice.contoso.com/wse/samples/2003/06/Concat"><v:FirstStr>Hello </v:FirstStr><v:SecondStr> World</v:SecondStr></v:Concat></soapenv:Body></soapenv:Envelope>
Axis2 client souce code is as follows
/*
* Copyright 2004,2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.hyperion.hfm.acistcptest;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.clientapi.Call;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.ConfigurationContextFactory;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.ServiceContext;
import org.apache.axis2.description.OperationDescription;
import org.apache.axis2.description.ServiceDescription;
import org.apache.axis2.description.TransportOutDescription;
import org.apache.axis2.soap.SOAPEnvelope;
import org.apache.axis2.soap.SOAPFactory;
import org.apache.axis2.transport.TransportSender;
import org.apache.axis2.transport.tcp.TCPTransportSender;
import org.apache.axis2.engine.AxisConfigurationImpl;
import org.apache.axis2.addressing.om.AddressingHeaders;
import org.apache.axis2.om.OMAbstractFactory;
import org.apache.axis2.om.OMDocument;
import org.apache.axis2.om.OMElement;
import org.apache.axis2.om.OMFactory;
import org.apache.axis2.om.OMNamespace;
import org.apache.axis2.addressing.om.*;
import javax.xml.namespace.QName;
import org.apache.axis2.clientapi.MessageSender;
import javax.xml.stream.FactoryConfigurationError;
import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;
/**
* This is a Client progam that accesses 'MyService' web service in Axis2 samples
*/
public class AxisClient {
private static String toEpr = "soap.tcp://blrl2790:2342/StockService";
public static void main(String[] args) throws AxisFault {
EndpointReference wsaTo = new EndpointReference("soap://stockservice.contoso.com/wse/samples/2003/06/TcpSyncStockService");
AddressingHeaders headers = new AddressingHeaders(wsaTo, "http://stockservice.contoso.com/wse/samples/2003/06/StockQuoteRequest");
MessageContext requestContext = null;
//FaxReceive.request(new TFaxReceive(account, password));
QName opName = new QName("soap://stockservice.contoso.com/wse/samples/2003/06/TcpSyncStockService", "GetStockQuotes");
OperationDescription opdesc = new OperationDescription(opName);
EndpointReference targetEPR = new EndpointReference(toEpr);
org.apache.axis2.clientapi.Call call = new org.apache.axis2.clientapi.Call();
call.setTo(targetEPR);
call.engageModule(new QName(Constants.MODULE_ADDRESSING));
call.setWsaAction("http://stockservice.contoso.com/wse/samples/2003/06/StockQuoteRequest");
call.setTransportInfo(Constants.TRANSPORT_TCP, Constants.TRANSPORT_TCP, false);
ConfigurationContextFactory fac = new ConfigurationContextFactory();
ConfigurationContext configContext = fac.buildClientConfigurationContext("StockQuoteRequest");
try {
requestContext = new MessageContext(configContext);
} catch (AxisFault axisFault) {
axisFault.printStackTrace();
}
SOAPFactory factory = OMAbstractFactory.getSOAP11Factory();
OMNamespace ns1 = factory.createOMNamespace("http://stockservice.contoso.com/wse/samples/2003/06","NS1");
SOAPEnvelope envelope = factory.getDefaultEnvelope();
OMElement operation = factory.createOMElement("StockQuoteRequest",ns1);
envelope.getBody().addChild(operation);
OMElement first = factory.createOMElement("symbols", ns1);
//OMElement second = fac.createOMElement("Symbol");
OMElement value = factory.createOMElement("Symbol", ns1);
value.addChild(factory.createText(value, "FABRIKAM"));
first.addChild(value);
operation.addChild(first);
requestContext.setEnvelope(envelope);
call.invokeBlocking(opdesc, requestContext);
//OMElement result =
// (OMElement) call.invokeBlocking("GetStockQuotes", getPayload());
//call.close();
/*OMFactory fac = OMAbstractFactory.getOMFactory();
String tryThisNamespace = "http://stockservice.contoso.com/wse/samples/2003/06/tryThis";
OMNamespace omNs = fac.createOMNamespace(tryThisNamespace, "xmlns");
OMElement method = fac.createOMElement("tryThis", omNs);
OMElement value = fac.createOMElement("Text", omNs);
value.addChild(fac.createText(value, "Axis2 Ping String "));
method.addChild(value);
MessageSender msgSender = new MessageSender();
msgSender.setTo(targetEPR);
msgSender.setSenderTransport(Constants.TRANSPORT_TCP);
msgSender.engageModule(new QName(Constants.MODULE_ADDRESSING));
msgSender.setWsaAction(tryThisNamespace);
msgSender.send("tryThis", method);
*/
/*TCPTransportSender sender = new TCPTransportSender();
sender.startSendWithToAddress(new MessageContext(), new OutputStream)
sender.finalizeSendWithToAddress(new MessageContext(), )
Call call = new Call();
call.setTo(new EndpointReference(toEpr));
call.setTransportInfo(Constants.TRANSPORT_TCP,
Constants.TRANSPORT_TCP,
false);*/
//call.engageModule(new QName(Constants.MODULE_ADDRESSING));
/*OMElement result = call.invokeBlocking("echo", getPayload());
//OMElement result = call.i("echo", getPayload());
try {
XMLStreamWriter writer = XMLOutputFactory.newInstance()
.createXMLStreamWriter(System.out);
result.serializeWithCache(writer);
writer.flush();
} catch (XMLStreamException e) {
e.printStackTrace();
} catch (FactoryConfigurationError e) {
e.printStackTrace();
}*/
}
private static OMElement getPayload() {
OMFactory fac = OMAbstractFactory.getOMFactory();
OMDocument doc = fac.createOMDocument();
String tryThisNamespace = "http://stockservice.contoso.com/wse/samples/2003/06/tryThis";
OMNamespace omNs = fac.createOMNamespace(
"http://stockservice.contoso.com/wse/samples/2003/06", "StockQuoteRequest");
//OMNamespace omNs = fac.createOMNamespace(tryThisNamespace, "v");
//OMElement method = fac.createOMElement("tryThis", omNs);
OMElement method = fac.createOMElement("StockQuoteRequest", omNs);
OMElement first = fac.createOMElement("symbols", omNs);
//OMElement second = fac.createOMElement("Symbol");
OMElement value = fac.createOMElement("Symbol", omNs);
value.addChild(fac.createText(value, "FABRIKAM"));
first.addChild(value);
method.addChild(first);
//doc.setDocumentElement(method);
//return doc.getDocumentElement();
return method;
}
}