I am trying to create a doc/lit webservice. I was successful in getting the
service running and testing it using a .net c# test client.
However, when I create an additional method in the SEI that accepts array
argument, it starts giving an exception such as the one below.
Any help will be appreciated. I am using JBOSS 4.0.2 default config. Is there
something fundamentally wrong in what i am doing?
| 17:04:10,353 FATAL [InternalException] Exception:
| java.lang.Exception: Couldn't find a matching Java operation for WSDD
operation "sayHelloManyTimes" (1 args)
| at org.jboss.axis.InternalException.<init>(InternalException.java:106)
| at
org.jboss.axis.description.ServiceDesc.loadServiceDescByIntrospection(ServiceDesc.java:992)
| at
org.jboss.axis.providers.java.JavaProvider.initServiceDesc(JavaProvider.java:732)
| at
org.jboss.webservice.server.InvokerProvider.initServiceDesc(InvokerProvider.java:95)
| at
org.jboss.axis.handlers.soap.SOAPService.getInitializedServiceDesc(SOAPService.java:388)
| at
org.jboss.axis.deployment.wsdd.WSDDService.makeNewInstance(WSDDService.java:560)
| at
org.jboss.axis.deployment.wsdd.WSDDDeployableItem.getNewInstance(WSDDDeployableItem.java:322)
| at
org.jboss.axis.deployment.wsdd.WSDDDeployableItem.getInstance(WSDDDeployableItem.java:307)
| at
org.jboss.axis.deployment.wsdd.WSDDDeployment.getService(WSDDDeployment.java:526)
| at
org.jboss.axis.configuration.FileProvider.getService(FileProvider.java:288)
| at org.jboss.axis.AxisEngine.getService(AxisEngine.java:253)
| at
org.jboss.webservice.server.ServiceEndpointServlet.doGet(ServiceEndpointServlet.java:58)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
| at
org.jboss.axis.transport.http.AxisServletBase.service(AxisServletBase.java:370)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
| at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
| at
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
| at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
| at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
| at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
| at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
| at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
| at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
| at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
| at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
| at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
| at
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
| at java.lang.Thread.run(Thread.java:534)
| 17:04:10,353 INFO [AxisServlet] Exception:
| org.jboss.axis.InternalException: java.lang.Exception: Couldn't find a
matching Java operation for WSDD operation "sayHelloManyTimes" (1 args)
| at
org.jboss.axis.description.ServiceDesc.loadServiceDescByIntrospection(ServiceDesc.java:992)
| at
org.jboss.axis.providers.java.JavaProvider.initServiceDesc(JavaProvider.java:732)
| at
org.jboss.webservice.server.InvokerProvider.initServiceDesc(InvokerProvider.java:95)
| at
org.jboss.axis.handlers.soap.SOAPService.getInitializedServiceDesc(SOAPService.java:388)
| at
org.jboss.axis.deployment.wsdd.WSDDService.makeNewInstance(WSDDService.java:560)
| at
org.jboss.axis.deployment.wsdd.WSDDDeployableItem.getNewInstance(WSDDDeployableItem.java:322)
| at
org.jboss.axis.deployment.wsdd.WSDDDeployableItem.getInstance(WSDDDeployableItem.java:307)
| at
org.jboss.axis.deployment.wsdd.WSDDDeployment.getService(WSDDDeployment.java:526)
| at
org.jboss.axis.configuration.FileProvider.getService(FileProvider.java:288)
| at org.jboss.axis.AxisEngine.getService(AxisEngine.java:253)
| at
org.jboss.webservice.server.ServiceEndpointServlet.doGet(ServiceEndpointServlet.java:58)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
| at
org.jboss.axis.transport.http.AxisServletBase.service(AxisServletBase.java:370)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
| at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
| at
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
| at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
| at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
| at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
| at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
| at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
| at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
| at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
| at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
| at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
| at
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
| at java.lang.Thread.run(Thread.java:534)
|
I then created a wrapper type for the array and I am still facing the same
problem. I am attaching the SEI, wsdl and mapping generated using wscompile
SEI
| package com.hp.ws.service;
|
| import java.rmi.Remote;
|
| public interface TimeEndPoint extends Remote {
| public java.lang.String getTime() throws java.rmi.RemoteException;
|
| public String sayHello(com.hp.ws.service.ServiceInput in) throws
java.rmi.RemoteException;
|
| public String sayHelloManyTimes(com.hp.ws.service.ServiceInputArray
in) throws java.rmi.RemoteException;
|
| }
|
|
WSDL
|
| <?xml version="1.0" encoding="UTF-8"?>
|
| <definitions name="TimeService" targetNamespace="http://com.hp.ws/service"
xmlns:tns="http://com.hp.ws/service" xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:ns2="http://com.hp.ws/service/types"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
| <types>
| <schema targetNamespace="http://com.hp.ws/service/types"
xmlns:tns="http://com.hp.ws/service/types"
xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://www.w3.org/2001/XMLSchema">
| <complexType name="getTime">
| <sequence/></complexType>
| <complexType name="getTimeResponse">
| <sequence>
| <element name="result" type="string"
nillable="true"/></sequence></complexType>
| <complexType name="sayHello">
| <sequence>
| <element name="ServiceInput_1" type="tns:ServiceInput"
nillable="true"/></sequence></complexType>
| <complexType name="ServiceInput">
| <sequence>
| <element name="age" type="int"/>
| <element name="name" type="string"
nillable="true"/></sequence></complexType>
| <complexType name="sayHelloResponse">
| <sequence>
| <element name="result" type="string"
nillable="true"/></sequence></complexType>
| <complexType name="sayHelloManyTimes">
| <sequence>
| <element name="ServiceInputArray_1" type="tns:ServiceInputArray"
nillable="true"/></sequence></complexType>
| <complexType name="ServiceInputArray">
| <sequence>
| <element name="inp" type="tns:ServiceInput" nillable="true"
minOccurs="0" maxOccurs="unbounded"/>
| <element name="name" type="string"
nillable="true"/></sequence></complexType>
| <complexType name="sayHelloManyTimesResponse">
| <sequence>
| <element name="result" type="string"
nillable="true"/></sequence></complexType>
| <element name="getTime" type="tns:getTime"/>
| <element name="getTimeResponse" type="tns:getTimeResponse"/>
| <element name="sayHello" type="tns:sayHello"/>
| <element name="sayHelloResponse" type="tns:sayHelloResponse"/>
| <element name="sayHelloManyTimes" type="tns:sayHelloManyTimes"/>
| <element name="sayHelloManyTimesResponse"
type="tns:sayHelloManyTimesResponse"/></schema></types>
| <message name="TimeEndPoint_getTime">
| <part name="parameters" element="ns2:getTime"/></message>
| <message name="TimeEndPoint_getTimeResponse">
| <part name="result" element="ns2:getTimeResponse"/></message>
| <message name="TimeEndPoint_sayHello">
| <part name="parameters" element="ns2:sayHello"/></message>
| <message name="TimeEndPoint_sayHelloResponse">
| <part name="result" element="ns2:sayHelloResponse"/></message>
| <message name="TimeEndPoint_sayHelloManyTimes">
| <part name="parameters" element="ns2:sayHelloManyTimes"/></message>
| <message name="TimeEndPoint_sayHelloManyTimesResponse">
| <part name="result" element="ns2:sayHelloManyTimesResponse"/></message>
| <portType name="TimeEndPoint">
| <operation name="getTime">
| <input message="tns:TimeEndPoint_getTime"/>
| <output message="tns:TimeEndPoint_getTimeResponse"/></operation>
| <operation name="sayHello">
| <input message="tns:TimeEndPoint_sayHello"/>
| <output message="tns:TimeEndPoint_sayHelloResponse"/></operation>
| <operation name="sayHelloManyTimes">
| <input message="tns:TimeEndPoint_sayHelloManyTimes"/>
| <output
message="tns:TimeEndPoint_sayHelloManyTimesResponse"/></operation></portType>
| <binding name="TimeEndPointBinding" type="tns:TimeEndPoint">
| <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
| <operation name="getTime">
| <soap:operation soapAction=""/>
| <input>
| <soap:body use="literal"/></input>
| <output>
| <soap:body use="literal"/></output></operation>
| <operation name="sayHello">
| <soap:operation soapAction=""/>
| <input>
| <soap:body use="literal"/></input>
| <output>
| <soap:body use="literal"/></output></operation>
| <operation name="sayHelloManyTimes">
| <soap:operation soapAction=""/>
| <input>
| <soap:body use="literal"/></input>
| <output>
| <soap:body use="literal"/></output></operation></binding>
| <service name="TimeService">
| <port name="TimeEndPointPort" binding="tns:TimeEndPointBinding">
| <soap:address
location="REPLACE_WITH_ACTUAL_URL"/></port></service></definitions>
|
|
THe mapping
| <?xml version="1.0" encoding="UTF-8"?>
| <java-wsdl-mapping xmlns="http://java.sun.com/xml/ns/j2ee"
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1"
| xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://www.ibm.com/webservices/xsd/j2ee_jaxrpc_mapping_1_1.xsd">
| <package-mapping>
| <package-type>com.hp.ws.service</package-type>
| <namespaceURI>http://com.hp.ws/service/types</namespaceURI>
| </package-mapping>
| <package-mapping>
| <package-type>com.hp.ws.service</package-type>
| <namespaceURI>http://com.hp.ws/service</namespaceURI>
| </package-mapping>
| <java-xml-type-mapping>
| <java-type>com.hp.ws.service.ServiceInput</java-type>
| <root-type-qname
| xmlns:typeNS="http://com.hp.ws/service/types">
| typeNS:ServiceInput
| </root-type-qname>
| <qname-scope>complexType</qname-scope>
| <variable-mapping>
| <java-variable-name>age</java-variable-name>
| <xml-element-name>age</xml-element-name>
| </variable-mapping>
| <variable-mapping>
| <java-variable-name>name</java-variable-name>
| <xml-element-name>name</xml-element-name>
| </variable-mapping>
| </java-xml-type-mapping>
| <java-xml-type-mapping>
| <java-type>
|
com.hp.ws.service.TimeEndPoint_sayHelloManyTimes_ResponseStruct
| </java-type>
| <root-type-qname
| xmlns:typeNS="http://com.hp.ws/service/types">
| typeNS:sayHelloManyTimesResponse
| </root-type-qname>
| <qname-scope>complexType</qname-scope>
| <variable-mapping>
| <java-variable-name>result</java-variable-name>
| <xml-element-name>result</xml-element-name>
| </variable-mapping>
| </java-xml-type-mapping>
| <java-xml-type-mapping>
| <java-type>
|
com.hp.ws.service.TimeEndPoint_sayHelloManyTimes_RequestStruct
| </java-type>
| <root-type-qname
| xmlns:typeNS="http://com.hp.ws/service/types">
| typeNS:sayHelloManyTimes
| </root-type-qname>
| <qname-scope>complexType</qname-scope>
| <variable-mapping>
|
<java-variable-name>ServiceInputArray_1</java-variable-name>
| <xml-element-name>ServiceInputArray_1</xml-element-name>
| </variable-mapping>
| </java-xml-type-mapping>
| <java-xml-type-mapping>
| <java-type>
| com.hp.ws.service.TimeEndPoint_getTime_RequestStruct
| </java-type>
| <root-type-qname
| xmlns:typeNS="http://com.hp.ws/service/types">
| typeNS:getTime
| </root-type-qname>
| <qname-scope>complexType</qname-scope>
| </java-xml-type-mapping>
| <java-xml-type-mapping>
| <java-type>com.hp.ws.service.ServiceInputArray</java-type>
| <root-type-qname
| xmlns:typeNS="http://com.hp.ws/service/types">
| typeNS:ServiceInputArray
| </root-type-qname>
| <qname-scope>complexType</qname-scope>
| <variable-mapping>
| <java-variable-name>inp</java-variable-name>
| <xml-element-name>inp</xml-element-name>
| </variable-mapping>
| <variable-mapping>
| <java-variable-name>name</java-variable-name>
| <xml-element-name>name</xml-element-name>
| </variable-mapping>
| </java-xml-type-mapping>
| <java-xml-type-mapping>
| <java-type>
| com.hp.ws.service.TimeEndPoint_sayHello_RequestStruct
| </java-type>
| <root-type-qname
| xmlns:typeNS="http://com.hp.ws/service/types">
| typeNS:sayHello
| </root-type-qname>
| <qname-scope>complexType</qname-scope>
| <variable-mapping>
| <java-variable-name>ServiceInput_1</java-variable-name>
| <xml-element-name>ServiceInput_1</xml-element-name>
| </variable-mapping>
| </java-xml-type-mapping>
| <java-xml-type-mapping>
| <java-type>
| com.hp.ws.service.TimeEndPoint_getTime_ResponseStruct
| </java-type>
| <root-type-qname
| xmlns:typeNS="http://com.hp.ws/service/types">
| typeNS:getTimeResponse
| </root-type-qname>
| <qname-scope>complexType</qname-scope>
| <variable-mapping>
| <java-variable-name>result</java-variable-name>
| <xml-element-name>result</xml-element-name>
| </variable-mapping>
| </java-xml-type-mapping>
| <java-xml-type-mapping>
| <java-type>
| com.hp.ws.service.TimeEndPoint_sayHello_ResponseStruct
| </java-type>
| <root-type-qname
| xmlns:typeNS="http://com.hp.ws/service/types">
| typeNS:sayHelloResponse
| </root-type-qname>
| <qname-scope>complexType</qname-scope>
| <variable-mapping>
| <java-variable-name>result</java-variable-name>
| <xml-element-name>result</xml-element-name>
| </variable-mapping>
| </java-xml-type-mapping>
| <service-interface-mapping>
| <service-interface>
| com.hp.ws.service.TimeService
| </service-interface>
| <wsdl-service-name xmlns:serviceNS="http://com.hp.ws/service">
| serviceNS:TimeService
| </wsdl-service-name>
| <port-mapping>
| <port-name>TimeEndPointPort</port-name>
| <java-port-name>TimeEndPointPort</java-port-name>
| </port-mapping>
| </service-interface-mapping>
| <service-endpoint-interface-mapping>
| <service-endpoint-interface>
| com.hp.ws.service.TimeEndPoint
| </service-endpoint-interface>
| <wsdl-port-type xmlns:portTypeNS="http://com.hp.ws/service">
| portTypeNS:TimeEndPoint
| </wsdl-port-type>
| <wsdl-binding xmlns:bindingNS="http://com.hp.ws/service">
| bindingNS:TimeEndPointBinding
| </wsdl-binding>
| <service-endpoint-method-mapping>
| <java-method-name>getTime</java-method-name>
| <wsdl-operation>getTime</wsdl-operation>
| <wrapped-element />
| <wsdl-return-value-mapping>
| <method-return-value>
| java.lang.String
| </method-return-value>
| <wsdl-message
|
xmlns:wsdlMsgNS="http://com.hp.ws/service">
| wsdlMsgNS:TimeEndPoint_getTimeResponse
| </wsdl-message>
|
<wsdl-message-part-name>result</wsdl-message-part-name>
| </wsdl-return-value-mapping>
| </service-endpoint-method-mapping>
| <service-endpoint-method-mapping>
| <java-method-name>sayHello</java-method-name>
| <wsdl-operation>sayHello</wsdl-operation>
| <wrapped-element />
| <method-param-parts-mapping>
| <param-position>0</param-position>
|
<param-type>com.hp.ws.service.ServiceInput</param-type>
| <wsdl-message-mapping>
| <wsdl-message
|
xmlns:wsdlMsgNS="http://com.hp.ws/service">
| wsdlMsgNS:TimeEndPoint_sayHello
| </wsdl-message>
| <wsdl-message-part-name>
| ServiceInput_1
| </wsdl-message-part-name>
| <parameter-mode>IN</parameter-mode>
| </wsdl-message-mapping>
| </method-param-parts-mapping>
| <wsdl-return-value-mapping>
| <method-return-value>
| java.lang.String
| </method-return-value>
| <wsdl-message
|
xmlns:wsdlMsgNS="http://com.hp.ws/service">
| wsdlMsgNS:TimeEndPoint_sayHelloResponse
| </wsdl-message>
|
<wsdl-message-part-name>result</wsdl-message-part-name>
| </wsdl-return-value-mapping>
| </service-endpoint-method-mapping>
| <service-endpoint-method-mapping>
| <java-method-name>sayHelloManyTimes</java-method-name>
| <wsdl-operation>sayHelloManyTimes</wsdl-operation>
| <wrapped-element />
| <method-param-parts-mapping>
| <param-position>0</param-position>
| <param-type>
| com.hp.ws.service.ServiceInputArray
| </param-type>
| <wsdl-message-mapping>
| <wsdl-message
|
xmlns:wsdlMsgNS="http://com.hp.ws/service">
|
wsdlMsgNS:TimeEndPoint_sayHelloManyTimes
| </wsdl-message>
| <wsdl-message-part-name>
| ServiceInputArray_1
| </wsdl-message-part-name>
| <parameter-mode>IN</parameter-mode>
| </wsdl-message-mapping>
| </method-param-parts-mapping>
| <wsdl-return-value-mapping>
| <method-return-value>
| java.lang.String
| </method-return-value>
| <wsdl-message
|
xmlns:wsdlMsgNS="http://com.hp.ws/service">
|
wsdlMsgNS:TimeEndPoint_sayHelloManyTimesResponse
| </wsdl-message>
|
<wsdl-message-part-name>result</wsdl-message-part-name>
| </wsdl-return-value-mapping>
| </service-endpoint-method-mapping>
| </service-endpoint-interface-mapping>
| </java-wsdl-mapping>
|
|
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3890724#3890724
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3890724
-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user