title: Java WebServiceException: Undefined port type with JBoss
body: <p>I am new to Web Services with JBoss.  A client is connecting to an EJB3 based Web Service
  With JBoss AS 5 and JDK 6 using JAX-WS. I am stuck with the following exception:</p>
  
  <pre><code>Exception in thread "main" javax.xml.ws.WebServiceException:
  Undefined port type: {http://webservice.samples/}HelloRemote
  at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:300)
  at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:306)
  at javax.xml.ws.Service.getPort(Service.java:161)
  at samples.client.BeanWSClient.getPort(BeanWSClient.java:44)
  at samples.client.BeanWSClient.main(BeanWSClient.java:35)
  </code></pre>
  
  <p>BeanWSClient.java (client is a different project than EJB3 WS):</p>
  
  <pre><code>package samples.client;
  import java.net.MalformedURLException;
  import java.net.URL;
  
  import javax.xml.namespace.QName;
  import javax.xml.ws.Service;
  import samples.webservice.HelloRemote;
  
  public class BeanWSClient {
      /**
       * @param args
       */
      public static void main(String[] args) throws Exception {
          String endpointURI ="http://192.168.22.100:8080/SampleWSEJBProject/HelloWorld?wsdl";
          String helloWorld = "Hello world!";
          Object retObj = getPort(endpointURI).echo(helloWorld);
          System.out.println(retObj);
      }
  
      private static HelloRemote getPort(String endpointURI) throws MalformedURLException  {   
          QName serviceName = new QName("http://www.openuri.org/2004/04/HelloWorld", "HelloWorldService");   
          URL wsdlURL = new URL(endpointURI);   
          Service service = Service.create(wsdlURL, serviceName);   
          return service.getPort(HelloRemote.class);   
      }   
  </code></pre>
  
  <p>HelloRemote.java:</p>
  
  <pre><code>package samples.webservice;
  import javax.jws.WebService; 
  
  @WebService
  //@SOAPBinding(style=SOAPBinding.Style.RPC)
  public interface HelloRemote  {
      public String echo(String input);
  }
  </code></pre>
  
  <p>HelloWorld.java:</p>
  
  <pre><code>package samples.webservice;
  
  import javax.ejb.Remote;   
  import javax.ejb.Stateless;   
  import javax.jws.WebMethod;   
  import javax.jws.WebService;   
  import javax.jws.soap.SOAPBinding;
  
  /**
   * Session Bean implementation class MyBean
   */
  @WebService(name = "EndpointInterface", targetNamespace = "http://www.openuri.org/2004/04/HelloWorld", serviceName = "HelloWorldService")
  @SOAPBinding(style = SOAPBinding.Style.RPC)
  @Remote(HelloRemote.class)
  @Stateless
  public class HelloWorld implements HelloRemote {
      /**
       * @see Object#Object()
       */
      @WebMethod
      public String echo(String input) {
          return input;
      }
  }
  </code></pre>