Advanced   Java   Services Web Services mit JBoss 2 Back Next Up Home


Web Services mit JBoss 2

Wir übertragen nun das Beispiel aus Web Services 3 nach JBoss. Wieder brauchen wir ein Dynamic Web Project mit einer web.xml Schablone. Die Packages nimdb und jaxws legen wir genauso an wie im zweiten Beispiel mit Endpoint.


web.xml
<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="http://java.sun.com/xml/ns/javaee"
             xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
             id="WebApp_ID"
             version="3.0">

  <display-name>WebService-JBoss-2</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
    <servlet-name>BossNimdbService</servlet-name>
    <servlet-class>nimdb.NimdbServiceImpl</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>BossNimdbService</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>

</web-app>

Die WAR-Datei lassen wir uns von Eclipse erzeugen und nennen sie MyNimdbService.war.


Deployen von MyNimdbService.war

Wie beim ersten Beispiel.

jboss-webservice-6.ipg

jboss-webservice-7.ipg


Der Client
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;

import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import javax.xml.ws.WebServiceException;

import nimdb.NimdbService;
import nimdb.Director;
import nimdb.Movie;

public class WebService_JBoss_2_Client
{
   public static void main(String[] args)
   {
      System.out.println("JBoss NimdbService Javaclient");
      try
      {
         QName qname = new QName("http://nimdb/", "TheNimdbService");  // slash am ende notwendig
         //QName qname = QName(<Packagename>, <serviceName, der in @WebService angegeben wird>)

         URL serviceURL = new URL("http://localhost:8080/MyNimdbService?wsdl");
         //URL serviceURL = new URL("http://localhost:8080/?wsdl")
         //TheNimdbService.war
         Service service = Service.create(serviceURL, qname);

         NimdbService ns = service.getPort(NimdbService.class);
         //System.out.println(ns.getClass().getName());
         List<Movie> list = ns.getMovies(new Director("fellini"));
         System.out.println( list.get(0).getTitle() );
         System.out.println( list.get(1).getTitle() );

         Movie movie = new Movie("wilde erdbeeren");
         Director dir = ns.getDirector(movie);  // funzt auch
         System.out.println(dir.getName());
      }
      catch(MalformedURLException ex)
      {
         System.out.println(ex);
      }
      catch(WebServiceException ex)
      {
         System.out.println(ex);
      }
   }
}

Die Ausgabe des Clients

jboss-webservice-8.ipg


Die WSDL

Man beachte den Abschnitt <wsdl:types>. Hier werden die selbstgeschriebenen Datentypen im XML-Format vorgestellt.

jboss-webservice-9.ipg

Valid XHTML 1.0 Strict top Back Next Up Home