You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsif-user@ws.apache.org by T Gopalakrishnan <tg...@yahoo.com> on 2004/10/28 08:09:43 UTC

Problem while getting WSIF Service

Hi
I am new to WSIF and i tried to create my own example
by modifying the existing complexsoap example.
I created a sample ejb with one method
isValidUser(String userName) which accepts the
username and if the user is valid it return
the employee details(a value object EmployeeDTO) else
it returns null.
I deployed both ejb and webservice and when i tried to
execute the client i struck with some errors.
While parsing the wsdl it throws the error.
http://localhost:8080/axis/services/SampleWSIFWebService
is the url for accessing webservice and
SampleWebService is my remote interface name

Can any one tell what is the mistake i did.

deploy.wsdd
===========

<deployment xmlns="http://xml.apache.org/axis/wsdd/"
  
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 <service name="SampleWSIFWebService"
provider="java:EJB">
  <parameter name="className"
value="com.company.wsif.SampleWSIFWebService"/>
  <parameter name="allowedMethods"
value="isValidUser"/>
  <parameter name="jndiURL"
value="jnp://localhost:1099"/>
  <parameter name="beanJndiName"
value="SampleWebServiceBean" />
  <parameter name="homeInterfaceName"
value="com.company.wsif.ejb.SampleWebServiceHome" />
  <parameter name="remoteInterfaceName"
value="com.company.wsif.ejb.SampleWebService" />
  <parameter name="jndiContextClass"
value="org.jnp.interfaces.NamingContextFactory"/>
 </service>
</deployment>


My Client Program
=================

package com.company.wsif;

import com.company.wsif.ejb.EmployeeDTO;

import java.rmi.RemoteException;

import javax.xml.namespace.QName;

import org.apache.wsif.WSIFException;
import org.apache.wsif.WSIFService;
import org.apache.wsif.WSIFServiceFactory;

/**
 * DOCUMENT ME!
 *
 * @author $author$
 * @version $Revision$
 */
public class SampleWebServiceWSIFClient
{
   /**
    * DOCUMENT ME!
    *
    * @param args DOCUMENT ME!
    */
   public static void main(String[] args)
   {
      try
      {
         if (args.length != 2)
         {
            System.out.println(
               "Usage: java
com.company.wsif.SampleWebServiceWSIFClient <wsdl
location> <employee name>");
            System.exit(1);
         }

         // create a service factory
         WSIFServiceFactory factory =
WSIFServiceFactory.newInstance();
         System.out.println("HAAAI");

         // parse WSDL
         WSIFService service =
factory.getService(args[0], null,null,
              
"http://localhost:8080/axis/services/SampleWSIFWebService",
"SampleWebService");
         System.out.println("WSIFService");

         // map types
         service.mapType(new
QName("http://localhost:8080/axis/services/SampleWSIFWebService",
"EmployeeDTO"),
           
Class.forName("com.company.wsif.EmployeeDTO"));

         // create the stub
         System.out.println("mapType");

         com.company.wsif.ejb.SampleWebService stub =
(com.company.wsif.ejb.SampleWebService)
service.getStub(com.company.wsif.ejb.SampleWebService.class);
         System.out.println("stub");

         // do the invocation
         // args[1] is the zip code
         EmployeeDTO empInfo = (EmployeeDTO)
stub.isValidUser("gopal");
         System.out.println("empInfo");
         System.out.println("This zip code is in " +
empInfo.getEmployeeCode() + "," +
empInfo.getEmployeeName() +
            " in " + empInfo.getDepartment() + "
county\n");
      }
      catch (WSIFException we)
      {
         System.out.println("Error while executing
sample, received an exception from WSIF; details:");
         we.printStackTrace();
      }
      catch (RemoteException re)
      {
         System.out.println("Error while executing
sample, received an exception due to remote
invocation; details:");
         re.printStackTrace();
      }
      catch (ClassNotFoundException ce)
      {
         System.out.println(
            "Error while executing sample, could not
find required class
complexsoap.client.stub.com.cdyne.ws.LatLongReturn;
please add it to your classpath; details:");
         ce.printStackTrace();
      }
   }
}



This was the i got while executing the client
=============================================

Error while executing sample, received an exception
from WSIF; details:
org.apache.wsif.WSIFException: PortType
'{http://localhost:8080/axis/services/}SampleWSIFWebService'
not found. Choices are:
{{urn:SampleWSIFWebService}SampleWSIFWebService}
        at
org.apache.wsif.util.WSIFUtils.getNamedItem(Unknown
Source)
        at
org.apache.wsif.util.WSIFUtils.selectPortType(Unknown
Source)
        at
org.apache.wsif.base.WSIFServiceImpl.<init>(Unknown
Source)
        at
org.apache.wsif.base.WSIFServiceFactoryImpl.getService(Unknown
Source)
        at
com.company.wsif.SampleWebServiceWSIFClient.main(SampleWebServiceWSIFClient.java:42)


=====
Thanks and Regards
T.Gopalakrishnan
==================
SUCCESS IS A JOURNEY NOT A DESTINATION

Send instant messages to your online friends http://uk.messenger.yahoo.com 

Re: Problem while getting WSIF Service

Posted by Aleksander Slominski <as...@cs.indiana.edu>.
T Gopalakrishnan wrote:

>Hi
>I am new to WSIF and i tried to create my own example
>by modifying the existing complexsoap example.
>I created a sample ejb with one method
>isValidUser(String userName) which accepts the
>username and if the user is valid it return
>the employee details(a value object EmployeeDTO) else
>it returns null.
>I deployed both ejb and webservice and when i tried to
>execute the client i struck with some errors.
>While parsing the wsdl it throws the error.
>http://localhost:8080/axis/services/SampleWSIFWebService
>is the url for accessing webservice and
>SampleWebService is my remote interface name
>  
>
try to do this:

 WSIFService service =
factory.getService(args[0], null,null, "urn:SampleWSIFWebService", "SampleWebService");


instead of

 WSIFService service =
factory.getService(args[0], null,null, "http://localhost:8080/axis/services/SampleWSIFWebService",
"SampleWebService");

because when selecting use namespace of WSDL and not its location.

HTH,

alek

>Can any one tell what is the mistake i did.
>
>deploy.wsdd
>===========
>
><deployment xmlns="http://xml.apache.org/axis/wsdd/"
>  
>xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
> <service name="SampleWSIFWebService"
>provider="java:EJB">
>  <parameter name="className"
>value="com.company.wsif.SampleWSIFWebService"/>
>  <parameter name="allowedMethods"
>value="isValidUser"/>
>  <parameter name="jndiURL"
>value="jnp://localhost:1099"/>
>  <parameter name="beanJndiName"
>value="SampleWebServiceBean" />
>  <parameter name="homeInterfaceName"
>value="com.company.wsif.ejb.SampleWebServiceHome" />
>  <parameter name="remoteInterfaceName"
>value="com.company.wsif.ejb.SampleWebService" />
>  <parameter name="jndiContextClass"
>value="org.jnp.interfaces.NamingContextFactory"/>
> </service>
></deployment>
>
>
>My Client Program
>=================
>
>package com.company.wsif;
>
>import com.company.wsif.ejb.EmployeeDTO;
>
>import java.rmi.RemoteException;
>
>import javax.xml.namespace.QName;
>
>import org.apache.wsif.WSIFException;
>import org.apache.wsif.WSIFService;
>import org.apache.wsif.WSIFServiceFactory;
>
>/**
> * DOCUMENT ME!
> *
> * @author $author$
> * @version $Revision$
> */
>public class SampleWebServiceWSIFClient
>{
>   /**
>    * DOCUMENT ME!
>    *
>    * @param args DOCUMENT ME!
>    */
>   public static void main(String[] args)
>   {
>      try
>      {
>         if (args.length != 2)
>         {
>            System.out.println(
>               "Usage: java
>com.company.wsif.SampleWebServiceWSIFClient <wsdl
>location> <employee name>");
>            System.exit(1);
>         }
>
>         // create a service factory
>         WSIFServiceFactory factory =
>WSIFServiceFactory.newInstance();
>         System.out.println("HAAAI");
>
>         // parse WSDL
>         WSIFService service =
>factory.getService(args[0], null,null,
>              
>"http://localhost:8080/axis/services/SampleWSIFWebService",
>"SampleWebService");
>         System.out.println("WSIFService");
>
>         // map types
>         service.mapType(new
>QName("http://localhost:8080/axis/services/SampleWSIFWebService",
>"EmployeeDTO"),
>           
>Class.forName("com.company.wsif.EmployeeDTO"));
>
>         // create the stub
>         System.out.println("mapType");
>
>         com.company.wsif.ejb.SampleWebService stub =
>(com.company.wsif.ejb.SampleWebService)
>service.getStub(com.company.wsif.ejb.SampleWebService.class);
>         System.out.println("stub");
>
>         // do the invocation
>         // args[1] is the zip code
>         EmployeeDTO empInfo = (EmployeeDTO)
>stub.isValidUser("gopal");
>         System.out.println("empInfo");
>         System.out.println("This zip code is in " +
>empInfo.getEmployeeCode() + "," +
>empInfo.getEmployeeName() +
>            " in " + empInfo.getDepartment() + "
>county\n");
>      }
>      catch (WSIFException we)
>      {
>         System.out.println("Error while executing
>sample, received an exception from WSIF; details:");
>         we.printStackTrace();
>      }
>      catch (RemoteException re)
>      {
>         System.out.println("Error while executing
>sample, received an exception due to remote
>invocation; details:");
>         re.printStackTrace();
>      }
>      catch (ClassNotFoundException ce)
>      {
>         System.out.println(
>            "Error while executing sample, could not
>find required class
>complexsoap.client.stub.com.cdyne.ws.LatLongReturn;
>please add it to your classpath; details:");
>         ce.printStackTrace();
>      }
>   }
>}
>
>
>
>This was the i got while executing the client
>=============================================
>
>Error while executing sample, received an exception
>from WSIF; details:
>org.apache.wsif.WSIFException: PortType
>'{http://localhost:8080/axis/services/}SampleWSIFWebService'
>not found. Choices are:
>{{urn:SampleWSIFWebService}SampleWSIFWebService}
>        at
>org.apache.wsif.util.WSIFUtils.getNamedItem(Unknown
>Source)
>        at
>org.apache.wsif.util.WSIFUtils.selectPortType(Unknown
>Source)
>        at
>org.apache.wsif.base.WSIFServiceImpl.<init>(Unknown
>Source)
>        at
>org.apache.wsif.base.WSIFServiceFactoryImpl.getService(Unknown
>Source)
>        at
>com.company.wsif.SampleWebServiceWSIFClient.main(SampleWebServiceWSIFClient.java:42)
>
>
>=====
>Thanks and Regards
>T.Gopalakrishnan
>==================
>SUCCESS IS A JOURNEY NOT A DESTINATION
>
>Send instant messages to your online friends http://uk.messenger.yahoo.com 
>  
>


-- 
The best way to predict the future is to invent it - Alan Kay