I know this has been discussed before, but I'm stumped.
I have a service running, and I can contact it no problem using a
stand-alone java client that uses the axis-generated stubs.
However, if I run fitnesse tests, they get an error:
<faultstring>The endpoint reference (EPR) for the Operation not found is
http://127.0.0.1:8080/axis2/services/ESPortalCDI and the WSA Action =
null</faultstring>
The requests, as viewed from tcpmon, are virtually identical, other than
the fitnesse has an empty soapenv:Header element.
There were remarks made on the list that this error is caused from using
ws-addressing. As with the others, I am not intentionally doing this.
If I am, how do I stop it? According to the web administrator app,
addressing is not engaged. I pulled the "soapAction" out of the wsdl
binding operation definitions, pulled the actionMappings out of the
services.xml, and modified the client to use soap11. While each of
those little changes has brought the two requests closer, the fitnesse
test still gets the error.
Is this a ws-addressing issue?
This has me stumped.
note that the service is behind a firewall, so the requests are
proxy-passed through. But both client and fitnesse access the same
public url.
The working request, as viewed with tcpmon, looks like:
POST /axis2/services/ESPortalCDI HTTP/1.1
Host: 127.0.0.1:8080
Content-Type: text/xml; charset=UTF-8
SOAPAction: ""
User-Agent: Axis2
Max-Forwards: 10
X-Forwarded-For: 192.168.167.1
X-Forwarded-Host: www.iris.edu
X-Forwarded-Server: www.iris.edu
Content-Length: 570
<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<esdp:getStations xmlns:gml="http://www.opengis.net/gml"
xmlns:esdp="http://portal.earthscope.org">
<esdp:UserToken>Me</esdp:UserToken>
<esdp:StationFilter xmlns:ogc="http://www.opengis.net/ogc">
<esdp:StationIdentifiers>
<esdp:StationIdentifier networkCode="IU"
stationCode="ANMO" />
<esdp:StationIdentifier networkCode="TA"
stationCode="C123" />
</esdp:StationIdentifiers>
</esdp:StationFilter>
</esdp:getStations>
</soapenv:Body>
</soapenv:Envelope>
Note there is a SOAPAction: html header. If I use SOAP1.2, that goes away.
The fitnesse request looks like:
POST /axis2/services/ESPortalCDI HTTP/1.1
Host: 127.0.0.1:8080
Accept-Encoding: gzip
Accept: text/xml, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Content-Type: text/xml; charset=utf-8
Cache-Control: no-cache
Pragma: no-cache
User-Agent: Java/1.5.0_12
Max-Forwards: 10
X-Forwarded-For: 69.44.86.66
X-Forwarded-Host: www.iris.edu
X-Forwarded-Server: www.iris.edu
Content-Length: 470
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<por:getStations xmlns:por="http://portal.earthscope.org">
<por:UserToken>testuser</por:UserToken>
<por:StationFilter>
<por:StationIdentifiers>
<por:StationIdentifier networkCode="TA" stationCode="z789"/>
<por:StationIdentifier networkCode="XE" stationCode="a123"/>
</por:StationIdentifiers>
</por:StationFilter>
</por:getStations>
</SOAP-ENV:Body></SOAP-ENV:Envelope>
Attached is my wsdl.
FWIW, I've been able to cut and paste the working request into a telnet
session, and get a correct response, but I cannot do the same for the
fitnesse request.
Thanks for any insight!
Linus
<wsdl:definitions targetNamespace="http://portal.earthscope.org"
xmlns:esdp="http://portal.earthscope.org"
xmlns:ws="http://www.iris.edu/ws/xsd"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<wsdl:types>
<schema elementFormDefault="qualified"
targetNamespace="http://portal.earthscope.org"
xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
<documentation>----Query Types----</documentation>
</annotation>
<include
schemaLocation="http://www.iris.edu/schema/esdp/esdp-0.1.xsd"/>
<annotation>
<documentation>----Method Types----</documentation>
</annotation>
<element name="getData">
<complexType>
<sequence>
<element name="DataDiscoveryRequest"
type="esdp:DataDiscoveryRequestType"/>
</sequence>
</complexType>
</element>>
<element name="getDataResponse">
<complexType>
<sequence>
<element name="DataDiscoveryResponse"
type="esdp:DataDiscoveryResponseType"
/>
</sequence>
</complexType>
</element>
<element name="getStations"
type="esdp:StationDiscoveryRequestType"/>
<!--
<element name="StationDiscovery">
<complexType>
<sequence>
<element name="StationDiscoveryRequest"
type="esdp:StationDiscoveryRequestType"/>
</sequence>
</complexType>
</element>
-->
<element name="getStationsResponse"
type="esdp:StationDiscoveryResponseType"/>
<!--
<complexType>
<sequence>
<element name="response"
type="esdp:StationDiscoveryResponseType"/>
</sequence>
</complexType>
</element>
-->
</schema>
</wsdl:types>
<wsdl:message name="commonDataDiscoveryMsg">
<wsdl:part element="esdp:getData" name="input"/>
</wsdl:message>
<wsdl:message name="commonDataDiscoveryResponseMsg">
<wsdl:part element="esdp:getDataResponse" name="result"/>
</wsdl:message>
<wsdl:message name="commonStationDiscoveryMsg">
<wsdl:part element="esdp:getStations" name="input"/>
</wsdl:message>
<wsdl:message name="commonStationDiscoveryResponseMsg">
<wsdl:part element="esdp:getStationsResponse" name="result"/>
</wsdl:message>
<wsdl:portType name="ESPortalCDIPortType">
<wsdl:operation name="getData">
<wsdl:input message="esdp:commonDataDiscoveryMsg"/>
<wsdl:output message="esdp:commonDataDiscoveryResponseMsg"/>
</wsdl:operation>
<wsdl:operation name="getStations">
<wsdl:input message="esdp:commonStationDiscoveryMsg"/>
<wsdl:output message="esdp:commonStationDiscoveryResponseMsg"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ESPortalCDISOAP12Binding"
type="esdp:ESPortalCDIPortType">
<soap12:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getData">
<soap12:operation style="document"/> <!-- soapAction="urn:getData"
-->
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getStations">
<soap12:operation style="document"/> <!--
soapAction="urn:getStations" -->
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="ESPortalCDISOAP11Binding"
type="esdp:ESPortalCDIPortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getData">
<soap:operation style="document"/> <!-- -->
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getStations">
<soap:operation style="document"/> <!--
soapAction="urn:getStations" -->
<wsdl:input>
<soap12:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap12:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ESPortalCDI">
<wsdl:port binding="esdp:ESPortalCDISOAP11Binding" name="SOAP11port">
<soap:address
location="http://localhost:8080/axis2/services/ESPortalCDI"/>
</wsdl:port>
<wsdl:port binding="esdp:ESPortalCDISOAP12Binding" name="SOAP12port">
<soap12:address
location="http://localhost:8080/axis2/services/ESPortalCDI"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]