I'm finding I must use name="in0" for the @WebParam annotation per the Web
service call below when using JSR181 w/XMLBeans and a Spring client. I have
tried all other permutations of the SOAPBinding and this is the *only* one
that seems to work.
If I don't use this I get an exception:
"org.codehaus.xfire.fault.XFireFault: Parameter {[the namespace]}in0 does
not exist!" I'm using a Spring client to access this service and have
included my appContext below.
Can anyone explain why I *must* use @WebParam(name="in0") and parameterStyle
= ParameterStyle.BARE for the String parameter of this service call for it
to work?
Thanks,
Lou
Web service Interface:
@WebService
@SOAPBinding(style = Style.DOCUMENT, use= Use.LITERAL, parameterStyle =
ParameterStyle.BARE)
public interface IAgileDbService {
@WebMethod
@WebResult(targetNamespace="http://www.xxx.com/pds/agile/common/agiledb/types")
// Must set WebParam name to "in0" and us ParameterStyle.BARE to get
this
to work
public AgileItemDocument
findAgileItemChangeByItemNumber(@WebParam(name="in0")String itemNumber);
}
Service App Context:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />
<import
resource="classpath:org/codehaus/xfire/spring/xfireXmlBeans.xml" />
<import
resource="classpath:applicationContext-AgileDBAccessService.xml" />
<bean id="webAnnotations"
class="org.codehaus.xfire.annotations.jsr181.Jsr181WebAnnotations" />
<bean id="xfire.xmlBeansAnnotationServiceFactory"
class="org.codehaus.xfire.annotations.AnnotationServiceFactory">
<constructor-arg index="0" ref="webAnnotations" />
<!-- WebAnnotations -->
<constructor-arg index="1" ref="xfire.transportManager" />
<!-- TransportManager -->
<constructor-arg index="2" ref="xfire.xmlbeansBindingProvider"
/>
<!-- BindingProvider -->
<property name="wsdlBuilderFactory"
ref="xfire.xmlbeansWSDLBuilderFactory" />
</bean>
<bean id="handlerMapping"
class="org.codehaus.xfire.spring.remoting.Jsr181HandlerMapping">
<property name="serviceFactory"
ref="xfire.xmlBeansAnnotationServiceFactory" />
<property name="typeMappingRegistry"
ref="xfire.xmlbeansTypeRegistry" />
<property name="xfire" ref="xfire" />
<property name="webAnnotations" ref="webAnnotations" />
</bean>
<bean
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="defaultHandler" ref="handlerMapping" />
<property name="urlMap">
<map>
<entry key="/EchoService">
<ref bean="echoService" />
</entry>
<entry key="/AgileDbService">
<ref bean="agileDBService" />
</entry>
</map>
</property>
</bean>
<bean id="agileDBService"
class="com.xxx.agile.common.dbservice.jws.AgileDbService">
<property name="agileDbServiceFacade" ref="agileServiceFacade"
/>
</bean>
<bean id="echoService"
class="com.xxx.agile.common.dbservice.jws.EchoService" />
</beans>
Client AppCtx:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />
<import
resource="classpath:org/codehaus/xfire/spring/xfireXmlBeans.xml" />
<bean id="agileDbService"
class="org.codehaus.xfire.spring.remoting.XFireClientFactoryBean">
<property name="wsdlDocumentUrl">
<value>
http://localhost:10547/AgileDBAccessServiceJws/services/AgileDbService?wsdl
</value>
</property>
<property name="serviceInterface">
<value>
com.xxx.agile.common.dbservice.jws.IAgileDbService</value>
</property>
<property name="serviceName">
<value>AgileDbService</value>
</property>
<property name="serviceFactory"
ref="xfire.xmlbeansServiceFactory"/>
</bean>
</beans>
WSDL:
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions
targetNamespace="http://jws.dbservice.common.agile.pds.xxx.com"
xmlns:tns="http://jws.dbservice.common.agile.pds.xxx.com"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns1="http://www.xxx.com/pds/agile/common/agiledb/types"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding"
xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
- <wsdl:types>
- <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
attributeFormDefault="qualified" elementFormDefault="qualified"
targetNamespace="http://jws.dbservice.common.agile.pds.xxx.com">
<xsd:element name="findAgileItemChangeByItemNumberin0" type="xsd:string"
/>
</xsd:schema>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:mxs="http://www.xxx.com/pds/agile/common/agiledb/types"
attributeFormDefault="unqualified" elementFormDefault="qualified"
targetNamespace="http://www.xxx.com/pds/agile/common/agiledb/types">
<xs:include schemaLocation="./SimpleTypes.xsd" />
<xs:include schemaLocation="./AgileRevision.xsd" />
<xs:include schemaLocation="./AgileAttachment.xsd" />
<xs:element name="AgileItem" type="mxs:AgileItemType" />
- <xs:complexType name="AgileItemType">
- <xs:sequence>
<xs:element maxOccurs="1" minOccurs="0" name="ID" type="xs:integer" />
<xs:element maxOccurs="1" minOccurs="0" name="ItemNumber" nillable="true"
type="mxs:StringType75" />
<xs:element maxOccurs="1" minOccurs="0" name="ItemDescription"
nillable="true" type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" name="ModifiedDate" type="xs:dateTime" />
<xs:element maxOccurs="1" minOccurs="0" name="ClassType" nillable="true"
type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" name="Subclass" type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" name="SubclassID" type="xs:integer" />
<xs:element maxOccurs="1" minOccurs="0" name="HasBOM" nillable="true"
type="xs:boolean" />
<xs:element maxOccurs="1" minOccurs="0" name="HasAttachment"
nillable="true" type="xs:boolean" />
<xs:element maxOccurs="1" minOccurs="0" name="ViewablePDF" nillable="true"
type="xs:boolean" />
<xs:element default="false" maxOccurs="1" minOccurs="0"
name="DistributionLevel" nillable="true" type="xs:string" />
<xs:element default="false" maxOccurs="1" minOccurs="0" name="Category"
nillable="true" type="xs:string" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="AgileRevisions"
nillable="true" type="mxs:AgileRevType" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="AgileAttachments"
nillable="true" type="mxs:AgileAttachmentType" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="ProductLines"
nillable="true" type="mxs:ProductLinesType" />
</xs:sequence>
<xs:attribute name="Version" type="mxs:VersionNumberType" use="required"
/>
</xs:complexType>
</xs:schema>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:mxs="http://www.xxx.com/pds/agile/common/agiledb/types"
attributeFormDefault="unqualified" elementFormDefault="qualified"
targetNamespace="http://www.xxx.com/pds/agile/common/agiledb/types">
<xs:include schemaLocation="./SimpleTypes.xsd" />
<xs:element name="AgileAttachment" type="mxs:AgileAttachmentType" />
- <xs:complexType name="AgileAttachmentType">
- <xs:sequence>
<xs:element maxOccurs="1" minOccurs="0" name="ID" type="xs:integer" />
<xs:element maxOccurs="1" minOccurs="0" name="Description" nillable="true"
type="mxs:StringType50" />
<xs:element maxOccurs="1" minOccurs="0" name="Filename" nillable="true"
type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="FolderVersion"
nillable="true" type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="FileSize" nillable="true"
type="xs:integer" />
<xs:element maxOccurs="1" minOccurs="0" name="FileType" nillable="true"
type="mxs:StringType15" />
<xs:element maxOccurs="1" minOccurs="0" name="AttachmentType"
nillable="true" type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="LastModifiedDate"
nillable="true" type="xs:dateTime" />
<xs:element maxOccurs="1" minOccurs="0" name="LastViewedDate"
nillable="true" type="xs:dateTime" />
<xs:element maxOccurs="1" minOccurs="0" name="CheckoutUser"
nillable="true" type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="CheckoutDate"
nillable="true" type="xs:dateTime" />
<xs:element maxOccurs="1" minOccurs="0" name="FileDescription"
nillable="true" type="mxs:StringType100" />
<xs:element maxOccurs="1" minOccurs="0" name="FolderDescription"
nillable="true" type="mxs:StringType50" />
<xs:element maxOccurs="1" minOccurs="0" name="ContentURL" nillable="true"
type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="FolderNumber"
nillable="true" type="mxs:StringType50" />
<xs:element maxOccurs="1" minOccurs="0" name="ContactInfo" nillable="true"
type="mxs:StringType50" />
</xs:sequence>
</xs:complexType>
</xs:schema>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:mxs="http://www.xxx.com/pds/agile/common/agiledb/types"
attributeFormDefault="unqualified" elementFormDefault="qualified"
targetNamespace="http://www.xxx.com/pds/agile/common/agiledb/types">
- <xs:simpleType name="StringTypeTiny">
- <xs:restriction base="xs:string">
<xs:minLength value="0" />
<xs:maxLength value="10" />
</xs:restriction>
</xs:simpleType>
- <xs:simpleType name="StringTypeShort">
- <xs:restriction base="xs:string">
<xs:minLength value="0" />
<xs:maxLength value="255" />
</xs:restriction>
</xs:simpleType>
- <xs:simpleType name="StringTypeLong">
- <xs:restriction base="xs:string">
<xs:minLength value="0" />
<xs:maxLength value="3000" />
</xs:restriction>
</xs:simpleType>
- <xs:simpleType name="StringTypeFixed16">
- <xs:restriction base="xs:string">
<xs:minLength value="16" />
<xs:maxLength value="16" />
</xs:restriction>
</xs:simpleType>
- <xs:simpleType name="StringType15">
- <xs:restriction base="xs:string">
<xs:minLength value="0" />
<xs:maxLength value="15" />
</xs:restriction>
</xs:simpleType>
- <xs:simpleType name="StringTypeFixed20">
- <xs:restriction base="xs:string">
<xs:minLength value="20" />
<xs:maxLength value="20" />
</xs:restriction>
</xs:simpleType>
- <xs:simpleType name="StringType30">
- <xs:restriction base="xs:string">
<xs:minLength value="0" />
<xs:maxLength value="30" />
</xs:restriction>
</xs:simpleType>
- <xs:simpleType name="StringType50">
- <xs:restriction base="xs:string">
<xs:minLength value="0" />
<xs:maxLength value="50" />
</xs:restriction>
</xs:simpleType>
- <xs:simpleType name="StringType75">
- <xs:restriction base="xs:string">
<xs:minLength value="0" />
<xs:maxLength value="75" />
</xs:restriction>
</xs:simpleType>
- <xs:simpleType name="StringType100">
- <xs:restriction base="xs:string">
<xs:minLength value="0" />
<xs:maxLength value="100" />
</xs:restriction>
</xs:simpleType>
- <xs:simpleType name="StringType1023">
- <xs:restriction base="xs:string">
<xs:minLength value="0" />
<xs:maxLength value="1023" />
</xs:restriction>
</xs:simpleType>
- <xs:simpleType name="VersionNumberType">
- <xs:restriction base="xs:string">
<xs:pattern value="([0-9])?[0-9].[0-9]([0-9])?" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:mxs="http://www.xxx.com/pds/agile/common/agiledb/types"
attributeFormDefault="unqualified" elementFormDefault="qualified"
targetNamespace="http://www.xxx.com/pds/agile/common/agiledb/types">
<xs:include schemaLocation="./SimpleTypes.xsd" />
<xs:include schemaLocation="./AgileChange.xsd" />
<xs:include schemaLocation="./AgileItem.xsd" />
<xs:element name="AgileRev" type="mxs:AgileRevType" />
- <xs:complexType name="AgileRevType">
- <xs:sequence>
<xs:element maxOccurs="1" minOccurs="0" name="ID" type="xs:integer" />
<xs:element maxOccurs="1" minOccurs="0" name="Description" nillable="true"
type="mxs:StringType100" />
<xs:element maxOccurs="1" minOccurs="0" name="OldRevisionNumber"
nillable="true" type="mxs:StringTypeFixed20" />
<xs:element maxOccurs="1" minOccurs="0" name="OldLifecyclePhase"
nillable="true" type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="RevisionNumber"
nillable="true" type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="RevisionVersion"
nillable="true" type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="LifecyclePhase"
nillable="true" type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="EffectiveDate"
nillable="true" type="xs:dateTime" />
<xs:element maxOccurs="1" minOccurs="0" name="ReleaseDate" nillable="true"
type="xs:dateTime" />
<xs:element maxOccurs="1" minOccurs="0" name="IncorporatedDate"
nillable="true" type="xs:dateTime" />
<xs:element maxOccurs="1" minOccurs="0" name="ObsoleteDate"
nillable="true" type="xs:dateTime" />
<xs:element maxOccurs="1" minOccurs="0" name="OnOrder" nillable="true"
type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="WorkInProgress"
nillable="true" type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="Stock" nillable="true"
type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="NextAssy" nillable="true"
type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="Field" nillable="true"
type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="RMA" nillable="true"
type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="Site" nillable="true"
type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="Version" nillable="true"
type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="DistributionMedia"
nillable="true" type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="NumberOfCopies"
nillable="true" type="xs:integer" />
<xs:element maxOccurs="1" minOccurs="0" name="AgileChange" nillable="true"
type="mxs:AgileChangeType" />
<xs:element maxOccurs="1" minOccurs="0" name="AgileItem" nillable="true"
type="mxs:AgileItemType" />
</xs:sequence>
</xs:complexType>
</xs:schema>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:mxs="http://www.xxx.com/pds/agile/common/agiledb/types"
attributeFormDefault="unqualified" elementFormDefault="qualified"
targetNamespace="http://www.xxx.com/pds/agile/common/agiledb/types">
<xs:include schemaLocation="./SimpleTypes.xsd" />
<xs:include schemaLocation="./AgileRevision.xsd" />
<xs:element name="AgileChange" type="mxs:AgileChangeType" />
- <xs:complexType name="AgileChangeType">
- <xs:sequence>
<xs:element maxOccurs="1" minOccurs="0" name="ID" type="xs:integer" />
<xs:element maxOccurs="1" minOccurs="0" name="PaginationTotalCount"
type="xs:integer" />
<xs:element maxOccurs="1" name="ChangeNumber" type="mxs:StringType30" />
<xs:element maxOccurs="1" minOccurs="0" name="ChangeType" nillable="true"
type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="Owner" nillable="true"
type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="Originator" nillable="true"
type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="Category" nillable="true"
type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="Description" nillable="true"
type="mxs:StringType1023" />
<xs:element maxOccurs="1" minOccurs="0" name="Reason" nillable="true"
type="mxs:StringType1023" />
<xs:element maxOccurs="1" name="Subclass" type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" name="SubclassID" type="xs:integer" />
<xs:element maxOccurs="1" minOccurs="0" name="WorkflowID" nillable="true"
type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="Status" nillable="true"
type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="CreatedDate" nillable="true"
type="xs:dateTime" />
<xs:element maxOccurs="1" minOccurs="0" name="SubmitDate" nillable="true"
type="xs:dateTime" />
<xs:element maxOccurs="1" minOccurs="0" name="RouteDate" nillable="true"
type="xs:dateTime" />
<xs:element maxOccurs="1" minOccurs="0" name="RouteDateToApprover"
nillable="true" type="xs:dateTime" />
<xs:element maxOccurs="1" minOccurs="0" name="ReleaseDate" nillable="true"
type="xs:dateTime" />
<xs:element maxOccurs="1" minOccurs="0" name="ReasonCode" nillable="true"
type="mxs:StringTypeShort" />
<xs:element maxOccurs="1" minOccurs="0" name="FinalCompleteDate"
nillable="true" type="xs:dateTime" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="ProductLines"
nillable="true" type="mxs:ProductLinesType" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="AgileAttachments"
nillable="true" type="mxs:AgileAttachmentType" />
<xs:element maxOccurs="unbounded" minOccurs="0" name="AgileRevisions"
nillable="true" type="mxs:AgileRevType" />
</xs:sequence>
</xs:complexType>
- <xs:complexType name="ProductLinesType">
- <xs:sequence>
<xs:element maxOccurs="1" name="ID" type="xs:integer" />
<xs:element maxOccurs="1" name="ProductLine" nillable="true"
type="mxs:StringType100" />
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>
- <wsdl:message name="findAgileItemChangeByItemNumberRequest">
<wsdl:part name="findAgileItemChangeByItemNumberin0"
element="tns:findAgileItemChangeByItemNumberin0" />
</wsdl:message>
- <wsdl:message name="findAgileItemChangeByItemNumberResponse">
<wsdl:part name="return" element="ns1:AgileItem" />
</wsdl:message>
- <wsdl:portType name="AgileDbServicePortType">
- <wsdl:operation name="findAgileItemChangeByItemNumber">
<wsdl:input name="findAgileItemChangeByItemNumberRequest"
message="tns:findAgileItemChangeByItemNumberRequest" />
<wsdl:output name="findAgileItemChangeByItemNumberResponse"
message="tns:findAgileItemChangeByItemNumberResponse" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="AgileDbServiceHttpBinding"
type="tns:AgileDbServicePortType">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="findAgileItemChangeByItemNumber">
<wsdlsoap:operation soapAction="" />
- <wsdl:input name="findAgileItemChangeByItemNumberRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
- <wsdl:output name="findAgileItemChangeByItemNumberResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="AgileDbService">
- <wsdl:port name="AgileDbServiceHttpPort"
binding="tns:AgileDbServiceHttpBinding">
<wsdlsoap:address
location="http://localhost:8080/AgileDBAccessServiceJws/services/AgileDbService"
/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
--
View this message in context:
http://www.nabble.com/%40WebParam-name%3D%22in0%22-for-parameter-required-for-JSR181%2BXMLBeans-w-Spring-Client-tf3991936.html#a11335551
Sent from the XFire - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email