Webservice definieren und andere Webservice aufrufen

Taramsis

Bekanntes Mitglied
Hi Leute,

ich arbeite mich gerade in die Webservice Thematik aus Java heraus ein und habe anhand eines Tutorials einen Webservice geschrieben der addieren kann.
Gibt es eine Möglichkeit die wsdl selbst zu definieren, da ich dies niergendwo entnehemen kann?

Diese beiden klassen wurden mir nach der eingabe von:


erstellt:


Java:
package service;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.logging.Logger;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import javax.xml.ws.WebEndpoint;
import javax.xml.ws.WebServiceClient;
import javax.xml.ws.WebServiceFeature;


/**
 * This class was generated by the JAX-WS RI.
 * JAX-WS RI 2.1.6 in JDK 6
 * Generated source version: 2.1
 * 
 */
@WebServiceClient(name = "CalculatorService", targetNamespace = "http://javawebsertest/", wsdlLocation = "http://localhost:8080/calculator?wsdl")
public class CalculatorService
    extends Service
{

    private final static URL CALCULATORSERVICE_WSDL_LOCATION;
    private final static Logger logger = Logger.getLogger(service.CalculatorService.class.getName());

    static {
        URL url = null;
        try {
            URL baseUrl;
            baseUrl = service.CalculatorService.class.getResource(".");
            url = new URL(baseUrl, "http://localhost:8080/calculator?wsdl");
        } catch (MalformedURLException e) {
            logger.warning("Failed to create URL for the wsdl Location: 'http://localhost:8080/calculator?wsdl', retrying as a local file");
            logger.warning(e.getMessage());
        }
        CALCULATORSERVICE_WSDL_LOCATION = url;
    }

    public CalculatorService(URL wsdlLocation, QName serviceName) {
        super(wsdlLocation, serviceName);
    }

    public CalculatorService() {
        super(CALCULATORSERVICE_WSDL_LOCATION, new QName("http://javawebsertest/", "CalculatorService"));
    }

    /**
     * 
     * @return
     *     returns Calculator
     */
    @WebEndpoint(name = "CalculatorPort")
    public Calculator getCalculatorPort() {
        return super.getPort(new QName("http://javawebsertest/", "CalculatorPort"), Calculator.class);
    }

    /**
     * 
     * @param features
     *     A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy.  Supported features not in the <code>features</code> parameter will have their default values.
     * @return
     *     returns Calculator
     */
    @WebEndpoint(name = "CalculatorPort")
    public Calculator getCalculatorPort(WebServiceFeature... features) {
        return super.getPort(new QName("http://javawebsertest/", "CalculatorPort"), Calculator.class, features);
    }

}

und

Java:
package service;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;


/**
 * This class was generated by the JAX-WS RI.
 * JAX-WS RI 2.1.6 in JDK 6
 * Generated source version: 2.1
 * 
 */
@WebService(name = "Calculator", targetNamespace = "http://javawebsertest/")
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface Calculator {


    /**
     * 
     * @param arg1
     * @param arg0
     * @return
     *     returns long
     */
    @WebMethod
    @WebResult(partName = "return")
    public long addValues(
        @WebParam(name = "arg0", partName = "arg0")
        int arg0,
        @WebParam(name = "arg1", partName = "arg1")
        int arg1);

}

Ich würd mich über eine Denkanstoß sehr freuen!
 
B

bygones

Gast
versteh nicht so ganz was du genau willst...

du schreibst dir einen Webservice und publizierst diesen, daraus wird dann eine wsdl generiert.

Um nun einen Client für deinen Webservice schreiben zu können kannst du per wsimport Befehl dir deinen Clientbasisklassen generieren lassen.

Nun kannst in einem beliebigen Projekt mithilfe dieser Clientklassen deinen Webservice aufrufen.
 

Taramsis

Bekanntes Mitglied
D.h die wsdl wird automatisch durch wsimport definiert!
Und meine Serverklasse bestimmt wie diese ausehen wird:

Java:
package server;

import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

@WebService
@SOAPBinding(style=Style.RPC)


public class Calculator {

    public long addValues(int val1, int val2) {
        return val1 + val2;
    }

}

Java:
package server;

import javax.xml.ws.Endpoint;

public class CalculatorServer {

    /**
     * @param args the command line arguments
     */
    public static void main (String args[]) {
        Calculator server = new Calculator();
        Endpoint endpoint =
        Endpoint.publish("http://localhost:8080/calculator", server);

    }


}

Wenn ich jetzt z.B. in mehreren wsdls Webservices definiert habe und diese über meine Java-Klasse aufrufen möchte, müßte ich dies entsprechend in den oberen Klassen implementieren und durch "wsimport" für einen Client bereitstellen?
Hab ich das richtig verstanden???
 
B

bygones

Gast
D.h die wsdl wird automatisch durch wsimport definiert!
nein die wsdl wird nicht durch import erzeugt, da werden deine Generate erstellt. Durch das "publish" wird die wsdl erzeugt. Kannst du auch so überprüfen, dass du vor dem import mal die URL ansteuerst...

Und meine Serverklasse bestimmt wie diese ausehen wird:
ja

Wenn ich jetzt z.B. in mehreren wsdls Webservices definiert habe und diese über meine Java-Klasse aufrufen möchte, müßte ich dies entsprechend in den oberen Klassen implementieren und durch "wsimport" für einen Client bereitstellen?
Hab ich das richtig verstanden???
wenn du schon die wsdl hasts musst du nur noch über import dir deine Generate erstellen. Bzw jeder der deinen Webservice nutzen will kann sich die Generate selbst erstellen.
 

Taramsis

Bekanntes Mitglied
Vielen Dank erstmal!
Wie kann man über diese "code first"-Methode nun einen weitere Webservice aufrufen?

Ich meine damit ich möchte in Java einen Webservice der dann zugriff auf weitere hat!
Meine Idee ist :
1. eine webservice in Java schreiben
2. eine klasse mit den entsprechenden zugriffen auf die bereits bestehenden webservice (dies ist die große Frage, wie??)

Empfielt sich da eher die "Code first" oder die "contact first" Methode?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Webservice timeout bei Ausführung der .jar Allgemeine Java-Themen 3
OnDemand Webservice Triggern Allgemeine Java-Themen 4
F Kennt jemand das Java WebService Tutorial der Uni Hannover? Allgemeine Java-Themen 2
F Operationen/Methoden einen WebService im Browser mit Apache Axis aufrufen Allgemeine Java-Themen 4
P XML Dokumente von JDOM an ein WebService senden! Allgemeine Java-Themen 2
I REST Webservice getFile Allgemeine Java-Themen 2
M WebService - Zugriff auf Webservice Methode über Browser Allgemeine Java-Themen 1
P CXF 3.0.1 WebService- Client Allgemeine Java-Themen 0
E Webservice zur Konvertierung IBAN/BIC -> Bank Name Allgemeine Java-Themen 1
S Webservice-Tutorial Allgemeine Java-Themen 3
U Eclipse Java Projekt - Webservice einbinden Allgemeine Java-Themen 7
C Webservice: XML Parameter übergabe. Allgemeine Java-Themen 7
Y WebService erstellen Allgemeine Java-Themen 2
C Datei kodiert zu Webservice senden Allgemeine Java-Themen 9
G WebService Exception Allgemeine Java-Themen 3
M Client für einen Webservice erstellen (ONVIF) Allgemeine Java-Themen 3
M Webservice mit Axis2 und Eclipse - Error Allgemeine Java-Themen 2
D Kein Zugriff auf WebService ausser localhost Allgemeine Java-Themen 4
M Webservice in Java erstellen Allgemeine Java-Themen 6
B webservice stub enthält nicht genug funktionen Allgemeine Java-Themen 2
R Konzept eines Software-Rollout/Synchronisation via WebService Allgemeine Java-Themen 5
P Schnittstelle über Webservice SOAP Allgemeine Java-Themen 11
G [Reflection + WebService] Methodenaufruf an einem Proxy Allgemeine Java-Themen 11
J HashMap mit Webservice realisierbar? Allgemeine Java-Themen 4
W Dringend: WebService Select Statement aus xml Datei Allgemeine Java-Themen 11
T Datenbankanbindung per WebService Allgemeine Java-Themen 4
S allgemeine Datenbankschnittstelle für Webservice Allgemeine Java-Themen 72
S Webservice --> wie ? Allgemeine Java-Themen 9
S Mit Methoden kann man definieren für was <T> steht. Geht das auch irgendwie für Variablen? Allgemeine Java-Themen 12
S Kann man Variablen oder Felder definieren deren Typ zwei Interfaces ist..? Allgemeine Java-Themen 9
F ProgressBar/Ladestatus definieren Allgemeine Java-Themen 28
M Beim Öffnen Dialog Directory und Filetype definieren Allgemeine Java-Themen 2
L Eigene Dependency Injections definieren? Allgemeine Java-Themen 4
L Annotations um Gültigkeit von Attributen zu definieren? Allgemeine Java-Themen 4
E Variablen Konstanten definieren Allgemeine Java-Themen 4
U Konstante in Objekt definieren Allgemeine Java-Themen 6
F Statische Methode in abstrakter Superklasse definieren Allgemeine Java-Themen 4
zilti NetBeans 6.0: neuen File Type definieren Allgemeine Java-Themen 2
Tom299 eine Konstante in Spring definieren? Allgemeine Java-Themen 4
J Objekte definieren? Allgemeine Java-Themen 2
K Compiler Fehler definieren/beeinflussen? Allgemeine Java-Themen 5
F Eigenen E-MailClient als Standart definieren Allgemeine Java-Themen 7
D ComboBox definieren Allgemeine Java-Themen 2
F Problem: mehrere Interfaces definieren equals() neu Allgemeine Java-Themen 24
TheJavaKid Taste definieren Allgemeine Java-Themen 12
R Arraylist in andere Klasse leiten und bearbeiten Allgemeine Java-Themen 10
E Swing andere schreibart für jButtoni (i = Zahl des Buttons) Allgemeine Java-Themen 6
perlenfischer1984 Lombok Builder soll andere Klasse bauen Allgemeine Java-Themen 4
R bei eclipse von java in eine andere programmiersprache wechseln? Allgemeine Java-Themen 2
B Chat auf andere Datentypen aufteilen Allgemeine Java-Themen 2
A Datum und Uhrzeit in andere Zeitzone umrechnen Allgemeine Java-Themen 7
X NetBeans Bilder und andere Dateien ins .jar schreiben und wieder aus .jar lesen Allgemeine Java-Themen 6
DanielsLPecke Java Arrays an andere Java Programme schicken und zurück Allgemeine Java-Themen 5
T Während des Programmlaufs andere Programme ausführen Allgemeine Java-Themen 1
F JTable mit Zellen die sich durch andere Eingaben füllen Allgemeine Java-Themen 1
M ZipOutputStream gleiche Datei andere Größe? Allgemeine Java-Themen 0
Todesbote Zeilen aus Excel in andere Excel Tabelle kopieren Allgemeine Java-Themen 0
N Objekte an eine andere Applikation übergeben Allgemeine Java-Themen 3
K LED-Matrix oder andere "Hardware" für JavaProgrammierung Allgemeine Java-Themen 9
F Array viel zu groß...andere Lösungen? Allgemeine Java-Themen 12
M Arraynamen an andere Klasse übergeben für allg. Rechnung Allgemeine Java-Themen 7
N Static oder andere Lösung Allgemeine Java-Themen 5
L Eine jar verwenden, die intern auf eine andere jar zugreift Allgemeine Java-Themen 7
B JAR Datei führt eine andere JAR Datei aus Allgemeine Java-Themen 2
M Methoden/Klassen für andere Projekte Allgemeine Java-Themen 4
S Von einer ArrayList in die andere schreiben? Allgemeine Java-Themen 6
Z Daten von einer Klasse in eine andere übertragen Allgemeine Java-Themen 8
E Wert in andere Klasse übernehmen Allgemeine Java-Themen 4
E Werte in andere Klasse übernehmen Allgemeine Java-Themen 8
S String in eine andere Klasse übergeben Allgemeine Java-Themen 25
S Mit einem jButton eine andere Klasse öffnen Allgemeine Java-Themen 2
J Array Sortierung auf andere Arrays anwenden Allgemeine Java-Themen 6
W xml File einlesen und in eine andere xml File einfügen.. Allgemeine Java-Themen 2
M Javamail -> andere Möglichkeit für Attachment Allgemeine Java-Themen 5
S Passt eine Flaeche in eine andere? Allgemeine Java-Themen 2
K import- Anweisung fehlerhaft und andere Fehler (eclipse) Allgemeine Java-Themen 2
M Map umformen und in andere Map schreiben Allgemeine Java-Themen 2
R if-Anweisung wird angemeckert, andere identische nicht Allgemeine Java-Themen 9
M Andere Möglichkeit zu casten Allgemeine Java-Themen 8
R Wert von einer Klasse in eine andere bekommen Allgemeine Java-Themen 6
A andere Methode "abschiessen" Allgemeine Java-Themen 6
I Teile von ArrayList in eine andere kopieren? Allgemeine Java-Themen 2
C Prüfen, ob eine Methode eine andere überschreibt! WIE? Allgemeine Java-Themen 8
A Java oder andere Sprache? Was ist geeigneter? Allgemeine Java-Themen 55
J Netbeans: wie auf grafische elemente zugreifen, andere Datei Allgemeine Java-Themen 2
G Da Jikes nicht mit java 5 geht, gibt es eine andere. Allgemeine Java-Themen 4
P Mehrzeiligen Text aus JTA lesen und in andere JTA kopieren Allgemeine Java-Themen 7
M Funktion als Parameter oder andere Möglichkeit Allgemeine Java-Themen 3
Y Aus einem Java Programm andere (Exe-)Programme starten Allgemeine Java-Themen 3
S Daten in andere Klasse übergeben Allgemeine Java-Themen 5
S Wie ICQ, AIM und andere IM mit Java steuern? Allgemeine Java-Themen 2
G JCreator, andere Editoren ? Allgemeine Java-Themen 4
G Connection conn in andere Klasse / Objekt weitergeben? Allgemeine Java-Themen 17
K Andere Interpretation eines Typs Allgemeine Java-Themen 7
H Methoden in andere Files auslagern Allgemeine Java-Themen 6
H Andere Software fernsteuern Allgemeine Java-Themen 7
M Zugriff auf andere Prozesse Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben