java-forum.org - Java programmieren aus Leidenschaft

Zurück   java-forum.org - Java programmieren aus Leidenschaft > Enterprise Java > Allgemeines EE

Thema geschlossen    
Themen-Optionen Thema durchsuchen Ansicht
Alt 09.06.2006, 10:02   #1 (permalink)
Benutzer
short
 
Registriert seit: 31.05.2006
Fachbeiträge: 25
Abgegebene Danke: 0
Erhielt 0 Danke für 0 Beiträge
Standard Ein Objekt mittels EJB einem WebService übergeben

Hallo Leute,

ich erläutere mal kurz den Sachverhalt

Ich habe (mit IBM RAD 6.0) ein EJB-Projekt erstellt und mir darin eine Statelesse Session Bean. In das selbe Package
habe ich mir denn eine simple Klasse "Mitarbeiter" erstellt :

Code:
public class Mitarbeiter implements Serializable {
  private String vorname = "test"
  private int plz = "12345"
  
  public Mitarbeiter(String v, int p) {
    vorname = v;
    plz = p;
  }

  public String getVorname() { return vorname; }
  public int getPlz() { return plz; }

}
In der Bean habe ich denn ein Objekt dieser Klasse erstellt:

Code:
public class SKompBean implements javax.ejb.SessionBean {
  private SessionContext mySessionCtx;
  private Object[] mitarb = new Mitarbeiter[3];

....(ejbCreate, -Activate, Passivate,-Remove)

  public Object[] getMitarbeiter() {
    mitarb[0] = new Mitarbeiter("Klaus", 23456);
    mitarb[1] = new Mitarbeiter("Peter", 98765);
    mitarb[2] = new Mitarbeiter("Sabine", 57733);

    return mitarb;
  }
}
Diese Mitarbeiter-Methode habe ich dem remote-interface bekannt gemacht. Anschließend kann ich mir im Rational Application Developer aus dieser Bean einen WebService generieren lassen. Gesagt --- getan.

Die Generierung läuft auch fehlerfrei durch und erstellt mir eine WSDL. Hier ein Auszug:

Code:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://ejbs" xmlns:impl="http://ejbs" xmlns:intf="http://ejbs" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <wsdl:types>
  <schema targetNamespace="http://ejbs" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://ejbs" xmlns:intf="http://ejbs" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <element name="getMitarbeiterResponse">
    <complexType>
     <sequence>
      <element name="getMitarbeiterReturn" nillable="true" type="impl:ArrayOfXSDAnyType"/>
     </sequence>
    </complexType>
   </element>
   <element name="getMitarbeiter">
    <complexType>
     <sequence/>
    </complexType>
   </element>
   <complexType name="ArrayOfXSDAnyType">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="anyType" nillable="true" type="xsd:anyType"/>
    </sequence>
   </complexType>
  </schema>
 </wsdl:types>

   <wsdl:message name="getMitarbeiterRequest">

      <wsdl:part element="impl:getMitarbeiter" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getMitarbeiterResponse">

      <wsdl:part element="impl:getMitarbeiterResponse" name="parameters"/>

   </wsdl:message>

   <wsdl:portType name="SKomp">

      <wsdl:operation name="getMitarbeiter">

         <wsdl:input message="impl:getMitarbeiterRequest" name="getMitarbeiterRequest"/>

         <wsdl:output message="impl:getMitarbeiterResponse" name="getMitarbeiterResponse"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="SKompSoapBinding" type="impl:SKomp">

      <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="getMitarbeiter">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getMitarbeiterRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getMitarbeiterResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="SKompService">

      <wsdl:port binding="impl:SKompSoapBinding" name="SKomp">

         <wsdlsoap:address location="http://localhost:9080/ServiceKomplex/services/SKomp"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>
Für mich sieht das alles eigtl. recht gut aus. Wenn ich diesen Service nun aber aufrufe (z.B. aus Excel) dann bekomme ich in Excel die Fehlermeldung Client: Loading the request into SoapReader failes. Falscher Parameter.

und in der Console meines RAD steht dann: "java.io.IOException: Die Serialisierung von ebjs.Mitarbeiter ist nicht möglich"

Wo liegt denn mein Fehler? Oder ist es gar nicht möglich Objekte auf diese Weise zu übergeben? Bin für jede Hilfe oder Alternativ-Vorschlag dankbar!!

LG, Jana
incognito ist offline  
Bei Google nach dem markiertem Wort suchen Bei Wikipedia nach dem markiertem Wort suchen Im Forum nach dem markiertem Wort suchen
Thema geschlossen    

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wie einem Thread ein Objekt übergeben nipnip Allgemeine Java-Themen 9 08.07.2008 13:04
Übergeben von Variablen von einem Objekt zum nächsten Curryhuhn Java Basics - Anfänger-Themen 5 14.03.2008 08:12
Zugriff auf umgebendes Objekt mittels Objekt innerer Klasse Tobias Java Basics - Anfänger-Themen 2 02.12.2007 12:20
Objekt an Servlet übergeben - oder Objekt global definieren? Gast Allgemeines EE 4 03.11.2007 19:03
WebService mittels SessionBean aufrufen? harry Allgemeines EE 7 05.05.2007 15:25


Lesezeichen

Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 Uhr.


Powered by vBulletin® Version 3.8.6 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.2
Thanks for Smilies by smilies.4-user.de