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 Richard Holzmeier <ri...@yahoo.de> on 2005/02/12 23:06:49 UTC

doc/literal service & multiple operations fault

Please help me with the following problem:

I'm trying to invoke a document/literal (unwrapped) service with two
different operations. As soon as the service class contains more than one
public method and the service is beeing invoked an exception is thrown. If
the service class contains only one method everything works fine.

Many thanks, Richard



Exception:

Exception in thread "main" AxisFault
 faultCode:
{http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
 faultSubcode: 
 faultString: Couldn't find an appropriate operation for XML QName
GetCapabilities
 faultActor: 
 faultNode: 
 faultDetail: 
############################################################################
##############

deploy.wsdd: 

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xml.apache.org/axis/wsdd/
..\schema\axis\wsdd.xsd">
	<service name="WMAS" style="message">
		<requestFlow>
			<handler type="soapmonitor"/>
		</requestFlow>
		<responseFlow>
			<handler type="soapmonitor"/>
		</responseFlow>
		<parameter name="className"
value="org.n52.geoprocessing.wmas.WMAS"/>
		<parameter name="allowedMethods" value="getCapabilities
processMapAlgebra"/>
		<wsdlFile>/service/WMAS.wsdl</wsdlFile>
	</service>
</deployment>

############################################################################
##############

responsible class:

package org.n52.geoprocessing.wmas;

import org.w3c.dom.Element;

public class WMAS {
  
    public Element[] getCapabilities(Element [] elems) {
        return elems;
    }
    
    public Element[] processMapAlgebra(Element [] elems) {
        return elems;
    }

}
############################################################################
##############

service description (WMAS.wsdl):

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
targetNamespace="http://www.52north.org/ns/mapalgebra/WMAS"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:wmas="http://www.52north.org/ns/mapalgebra/WMAS"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<wsdl:types>
		<schema
targetNamespace="http://www.52north.org/ns/mapalgebra/WMAS"
xmlns="http://www.w3.org/2001/XMLSchema">
			<element name="getCapabilities" type="xsd:anyType"/>
			<element name="getCapabilitiesReturn"
type="xsd:anyType"/>
			<element name="processMapAlgebra"
type="xsd:anyType"/>
			<element name="processMapAlgebraReturn"
type="xsd:anyType"/>
		</schema>
	</wsdl:types>
	<wsdl:message name="getCapabilitiesResponse">
		<wsdl:part element="wmas:getCapabilitiesReturn"
name="getCapabilitiesReturn"/>
	</wsdl:message>
	<wsdl:message name="getCapabilitiesRequest">
		<wsdl:part element="wmas:getCapabilities"
name="getCapabilities"/>
	</wsdl:message>
	<wsdl:message name="processMapAlgebraResponse">
		<wsdl:part element="wmas:processMapAlgebraReturn"
name="getCapabilitiesReturn"/>
	</wsdl:message>
	<wsdl:message name="processMapAlgebraRequest">
		<wsdl:part element="wmas:processMapAlgebra"
name="processMapAlgebra"/>
	</wsdl:message>
	<wsdl:portType name="WMAS">
		<wsdl:operation name="getCapabilities">
			<wsdl:input message="wmas:getCapabilitiesRequest"
name="getCapabilitiesRequest"/>
			<wsdl:output message="wmas:getCapabilitiesResponse"
name="getCapabilitiesResponse"/>
		</wsdl:operation>
		<wsdl:operation name="processMapAlgebra">
			<wsdl:input message="wmas:processMapAlgebraRequest"
name="processMapAlgebraRequest"/>
			<wsdl:output
message="wmas:processMapAlgebraResponse" name="processMapAlgebraResponse"/>
		</wsdl:operation>
	</wsdl:portType>
	<wsdl:binding name="WMASSoapBinding" type="wmas:WMAS">
		<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="getCapabilities">
			<wsdlsoap:operation soapAction=""/>
			<wsdl:input name="getCapabilitiesRequest">
				<wsdlsoap:body use="literal"/>
			</wsdl:input>
			<wsdl:output name="getCapabilitiesResponse">
				<wsdlsoap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="processMapAlgebra">
			<wsdlsoap:operation soapAction=""/>
			<wsdl:input name="processMapAlgebraRequest">
				<wsdlsoap:body use="literal"/>
			</wsdl:input>
			<wsdl:output name="processMapAlgebraResponse">
				<wsdlsoap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>
	<wsdl:service name="WMASService">
		<wsdl:port binding="wmas:WMASSoapBinding" name="WMAS">
			<wsdlsoap:address
location="http://localhost:8080/axis/services/WMAS"/>
		</wsdl:port>
	</wsdl:service>
</wsdl:definitions>