Hi Folks

I am trying to resolve a problem a few days and I am stuck here. I am 
relatively new to webservices and trying to figure out what is the problem. I 
am using JBoss 4.0.5 GA which has bundled JBossWS 1.4. When I run a webservice 
client I get an error. Note: I have used "+++" to seperate peices of Source Code

Will appreciate if some one could point me to the problem. I am assuming that 
there is a problem is with some mapping file ,because I am able to invoke the 
sayHello method via the second method . Also I read same kind of problem faced 
by another person,but  had no reply posted 
http://lists.jboss.org/pipermail/jbossws-users/2007-January/001196.html
Note - I picked up the server code from example stated in the URL below
http://www.soapui.org/jbossws/topdown_example.html

Thanks a ton in advance
+++++++++++++++++++++++++++++++++++
ERROR
+++++++++++++++++++++++++++++++++++
Contacting webservice at http://localhost:8080/HelloWorld
output:Hello How are you, Kapilesh!
Exception in thread "main" javax.xml.rpc.JAXRPCException: Cannot obtain 
operation meta data for: {http://localhost:8080/HelloWorld}sayHello
        at org.jboss.ws.jaxrpc.CallImpl.getOperationMetaData(CallImpl.java:840)
        at org.jboss.ws.jaxrpc.CallImpl.getOperationMetaData(CallImpl.java:820)
        at org.jboss.ws.jaxrpc.CallImpl.invokeInternal(CallImpl.java:618)
        at org.jboss.ws.jaxrpc.CallImpl.invoke(CallImpl.java:404)
        at helloworld.client.HelloClient.main(HelloClient.java:50)
+++++++++++++++++++++++++++++++++++++++++++++
I am invoking the webservice in 2 ways . One fetching the remote interface and 
one use a CallImpl

My client code is as follows :-
+++++++++++++++++++++++++++++++++++++++++++++++

package helloworld.client;

import helloworld.*;

import javax.xml.rpc.Service;
import javax.xml.rpc.Call;
import javax.xml.rpc.ServiceFactory;
import org.jboss.ws.jaxrpc.ServiceImpl;
import org.jboss.ws.jaxrpc.CallImpl;
import org.jboss.ws.jaxrpc.encoding.*;
import javax.xml.namespace.QName;

import java.net.URL;

public class HelloClient
{
    public static void main(String[] args)
        throws Exception
    {
        String TARGET_NAMESPACE   = "http://localhost:8080/HelloWorld";;
        String argument = "Kapilesh";

        System.out.println("Contacting webservice at " + TARGET_NAMESPACE );
        ServiceFactory factory = ServiceFactory.newInstance();
        URL wsdlLoction =  new URL(TARGET_NAMESPACE+"?wsdl");
        QName serviceName = new QName(TARGET_NAMESPACE,
                                "HelloWorldService");

        
        ServiceImpl service = (ServiceImpl)factory.createService(wsdlLoction, 
serviceName);
        QName operationName = new QName(TARGET_NAMESPACE, "sayHello");
        //first method
      IHelloWorld hello = (IHelloWorld) service.getPort(IHelloWorld.class);

       // System.out.println("hello.hello(" + argument + ")");
       System.out.println("output:" + hello.sayHello(argument));
        

        

       CallImpl call = (CallImpl)service.createCall();    
       call.setOperationName(operationName);
    
     //   
System.out.println(call.isParameterAndReturnSpecRequired(operationName));
     // second method
       Object retObj = call.invoke(new Object[]{argument});

        
        
    }
}
+++++++++++++++++++++++++++++++++++++++++++++++
I have deployed a webservice on a server and I am able to deploy it 
sucessfully...
15:08:30,968 WARN  [PortComponentMetaData] <wsdl-port> element in 
webservices.xml not namespace qualified: HelloWorldPort
15:08:31,437 WARN  [JSR109ServerMetaDataBuilder] Adding wsdl targetNamespace 
to: {http://localhost:8080/HelloWorld/}HelloWorldPort
15:08:31,812 INFO  [TomcatDeployer] deploy, ctxPath=/HelloWorld, 
warUrl=.../tmp/deploy/tmp52320HelloWorld-exp.war/
15:08:32,062 INFO  [WSDLFilePublisher] WSDL published to: 
file:/C:/jboss-4.0.5.GA/server/default/data/wsdl/HelloWorld.war/HelloWorld.wsdl
15:08:32,093 INFO  [ServiceEndpointManager] WebService started: 
http://localhost:8080/HelloWorld
++++++++++++++++++++++++++++++++++++++++++++++++
On the server side I have the following files deployed



WEB-INF/classes/helloworld/HelloWorldService.class
WEB-INF/classes/helloworld/IHelloWorld.class
WEB-INF/classes/helloworld/impl/HelloWorld.class
WEB-INF/classes/HelloWorld-mapping.xml
WEB-INF/HelloWorld-mapping.xml
WEB-INF/jaxrpc-mapping.xml
WEB-INF/web.xml
WEB-INF/webservices.xml
WEB-INF/wsdl/HelloWorld.wsdl

++++++++++++++++++++++++++++++++++++++++++++++
webservices.xml
++++++++++++++++++++++++++++++++++++++++++++++
<?xml version="1.0" encoding="UTF-8"?>
<webservices version="1.1" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee"; 
xmlns="http://java.sun.com/xml/ns/j2ee"; 
xmlns:impl="http://localhost:8080/HelloWorld/"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
 
<webservice-description>
  <webservice-description-name>HelloWorld</webservice-description-name>
  <wsdl-file>WEB-INF/wsdl/HelloWorld.wsdl</wsdl-file>
  <jaxrpc-mapping-file>WEB-INF/HelloWorld-mapping.xml</jaxrpc-mapping-file>
  <port-component>
   <port-component-name>IHelloWorldPort</port-component-name>
   <wsdl-port>HelloWorldPort</wsdl-port>
   
<service-endpoint-interface>helloworld.IHelloWorld</service-endpoint-interface>
   <service-impl-bean>
    <servlet-link>HelloWorld</servlet-link>
   </service-impl-bean>
  </port-component>
 </webservice-description>
++++++++++++++++++++++++++++++++++++++++++++++++
web.xml
++++++++++++++++++++++++++++++++++++++++++++++++
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee";>
  
    <servlet-name>HelloWorld</servlet-name>
    <servlet-class>helloworld.impl.HelloWorld</servlet-class>
  
  <servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
</web-app>
++++++++++++++++++++++++++++++++++++++++++++++++
jax-rpc-mapping.xml
++++++++++++++++++++++++++++++++++++++++++++++++
<?xml version="1.0" encoding="UTF-8"?>

<java-wsdl-mapping version="1.1" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee"; 
xmlns="http://java.sun.com/xml/ns/j2ee"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
<package-mapping>
  <package-type>helloworld</package-type>
  http://localhost:8080/HelloWorld/
 </package-mapping><service-interface-mapping>
  <service-interface>helloworld.HelloWorld</service-interface>
  <wsdl-service-name 
xmlns:serviceNS="http://localhost:8080/HelloWorld/";>serviceNS:HelloWorld</wsdl-service-name>
  <port-mapping>
   <port-name>IHelloWorldPort</port-name>
   <java-port-name>IHelloWorldPort</java-port-name>
  </port-mapping>
 </service-interface-mapping><service-endpoint-interface-mapping>
  
<service-endpoint-interface>helloworld.IHelloWorld</service-endpoint-interface>
  <wsdl-port-type 
xmlns:portTypeNS="http://localhost:8080/HelloWorld/";>portTypeNS:IHelloWorld</wsdl-port-type>
  <wsdl-binding 
xmlns:bindingNS="http://localhost:8080/HelloWorld/";>bindingNS:IHelloWorldBinding</wsdl-binding>
  <service-endpoint-method-mapping>
   <java-method-name>sayHello</java-method-name>
   <wsdl-operation>sayHello</wsdl-operation>
   <method-param-parts-mapping>
    <param-position>0</param-position>
    <param-type>java.lang.String</param-type>
    <wsdl-message-mapping>
     <wsdl-message 
xmlns:wsdlMsgNS="http://localhost:8080/HelloWorld/";>wsdlMsgNS:IHelloWorld_sayHello</wsdl-message>
     <wsdl-message-part-name>String_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://localhost:8080/HelloWorld/";>wsdlMsgNS:IHelloWorld_sayHelloResponse</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>
++++++++++++++++++++++++++++++++++++++++++++++++

HelloWorld-mapping.xml
++++++++++++++++++++++++++++++++++++++++++++++++
<?xml version='1.0' encoding='UTF-8'?><java-wsdl-mapping version='1.1' 
xmlns='http://java.sun.com/xml/ns/j2ee' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xsi:schemaLocation='http://java.sun.com/xml/ns/j2ee '>
 <package-mapping>
  <package-type>helloworld</package-type>
  http://localhost:8080/HelloWorld/
 </package-mapping>
 <service-interface-mapping>
  <service-interface>helloworld.HelloWorldService</service-interface>
  <wsdl-service-name 
xmlns:serviceNS='http://localhost:8080/HelloWorld/'>serviceNS:HelloWorldService</wsdl-service-name>
  <port-mapping>
   <port-name>HelloWorldPort</port-name>
   <java-port-name>HelloWorldPort</java-port-name>
  </port-mapping>
 </service-interface-mapping>
 <service-endpoint-interface-mapping>
  
<service-endpoint-interface>helloworld.IHelloWorld</service-endpoint-interface>
  <wsdl-port-type 
xmlns:portTypeNS='http://localhost:8080/HelloWorld/'>portTypeNS:IHelloWorld</wsdl-port-type>
  <wsdl-binding 
xmlns:bindingNS='http://localhost:8080/HelloWorld/'>bindingNS:HelloWorld</wsdl-binding>
  <service-endpoint-method-mapping>
   <java-method-name>sayHello</java-method-name>
   <wsdl-operation>sayHello</wsdl-operation>
   <method-param-parts-mapping>
    <param-position>0</param-position>
    <param-type>java.lang.String</param-type>
    <wsdl-message-mapping>
     <wsdl-message 
xmlns:wsdlMsgNS='http://localhost:8080/HelloWorld/'>wsdlMsgNS:sayHelloRequest</wsdl-message>
     <wsdl-message-part-name>sayHelloRequest</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://localhost:8080/HelloWorld/'>wsdlMsgNS:sayHelloResponse</wsdl-message>
    <wsdl-message-part-name>sayHelloResponse</wsdl-message-part-name>
   </wsdl-return-value-mapping>
  </service-endpoint-method-mapping>
 </service-endpoint-interface-mapping>
</java-wsdl-mapping>
++++++++++++++++++++++++++++++++++++++++++++++++

HelloWorld.wsdl
++++++++++++++++++++++++++++++++++++++++++++++++
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="HelloWorld"
        targetNamespace="http://localhost:8080/HelloWorld/";
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
        xmlns:tns="http://localhost:8080/HelloWorld/";
        xmlns:xsd="http://www.w3.org/2001/XMLSchema";
        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";>
        <wsdl:types/>
        <wsdl:message name="sayHelloRequest">
                <wsdl:part name="sayHelloRequest" type="xsd:string"></wsdl:part>
        </wsdl:message>
        <wsdl:message name="sayHelloResponse">
                <wsdl:part name="sayHelloResponse" 
type="xsd:string"></wsdl:part>
        </wsdl:message>
        <wsdl:portType name="IHelloWorld">
                <wsdl:operation name="sayHello">
                        <wsdl:input message="tns:sayHelloRequest"></wsdl:input>
                        <wsdl:output 
message="tns:sayHelloResponse"></wsdl:output>
                </wsdl:operation>
        </wsdl:portType>
        <wsdl:binding name="HelloWorld" type="tns:IHelloWorld">
                <soap:binding style="rpc"
                        transport="http://schemas.xmlsoap.org/soap/http"; />
                <wsdl:operation name="sayHello">
                        <soap:operation
                                
soapAction="http://localhost:8080/HelloWorld/sayHello"; />
                        <wsdl:input>
                                <soap:body use="literal"
                                        
namespace="http://localhost:8080/HelloWorld/"; />
                        </wsdl:input>
                        <wsdl:output>
                                <soap:body use="literal"
                                        
namespace="http://localhost:8080/HelloWorld/"; />
                        </wsdl:output>
                </wsdl:operation>
        </wsdl:binding>
        <wsdl:service name="HelloWorldService">
                <wsdl:port name="HelloWorldPort" binding="tns:HelloWorld">
                        <soap:address 
location="http://localhost:8080/HelloWorld"; />
                </wsdl:port>
        </wsdl:service>
</wsdl:definitions>
+++++++++++++++++++++++++++++++++++++++++++++++
My Java Class Files are as follows :-

/*  
* JBoss, the OpenSource EJB server
* Distributable under LGPL license. See terms of license at gnu.org.
*/

//Auto Generated by jbossws - Please do not edit!!!

package helloworld;


import javax.xml.rpc.*; 


public interface  HelloWorldService extends  javax.xml.rpc.Service
{

     public helloworld.IHelloWorld getHelloWorldPort() throws ServiceException;

}

+++++++++++++++++++++++++++++++++++
/*
 * JBossWS WS-Tools Generated Source
 *
 * Generation Date: Mon Jun 04 14:47:16 IST 2007
 *
 * This generated source code represents a derivative work of the input to
 * the generator that produced it. Consult the input for the copyright and
 * terms of use that apply to this source code.
 */
package helloworld;
public interface  IHelloWorld extends java.rmi.Remote
{

  public java.lang.String  sayHello(java.lang.String sayHelloRequest) throws  
java.rmi.RemoteException;
}
+++++++++++++++++++++++++++++++++++++++++++++
HelloWorld.java
++++++++++++++++++++++++++++++++++
package helloworld.impl;

import helloworld.IHelloWorld;

public class HelloWorld implements IHelloWorld 
{
        public String sayHello(String sayHelloRequest) 
        {
                return "Hello How are you, " + sayHelloRequest + "!";
        }
}









View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4050878#4050878

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4050878
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to