Webservice Einbinden wsdl

Nud3l

Gesperrter Benutzer
Hi,

ich hatte schon unter Deployment das Theme veröffentlicht vielleicht ist es dort falsch.

Ich weis nicht woran es liegt ob an den Webservice oder an meinen Maven Einstellungen daher hier ein Link zum anderem Thread.

Eine Aussage bezüglich wo es hapert würde mir schon helfen.

Webservice Einbinden einer WSDL
 

Nud3l

Gesperrter Benutzer
Hallo nach etwas recherche habe ich heraus gefunden das ich wohl hier richtiger bin und das es an der Annotaion des Webservice oder an der web.xml und an der sun-jaxws.xml liegen muss.

Ich habe jetzt einiges um gestellt, aber es funktioniert gar nichts mehr. Also in meinem Glassfish wird der Services nicht mal erkannt und angezeigt. Kann mir jemand sagen was an dem Daten falsch ist..

Hier mal ein Auszug aus meinem Programm.

web.xml
[XML]<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">

<display-name>Mein Webservice</display-name>

<listener>
<listener-class>
com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>

<servlet>
<servlet-name>WS1JaxWsServlet</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<!-- <load-on-startup>1</load-on-startup> -->
</servlet>
<servlet-mapping>
<servlet-name>WS1JaxWsServlet</servlet-name>
<url-pattern>/WS1</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>WS2JaxWsServlet</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<!-- <load-on-startup>1</load-on-startup> -->
</servlet>
<servlet-mapping>
<servlet-name>WS2JaxWsServlet</servlet-name>
<url-pattern>/WS2</url-pattern>
</servlet-mapping>

<servlet>
<servlet-name>WS3JaxWsServlet</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<!-- <load-on-startup>1</load-on-startup> -->
</servlet>
<servlet-mapping>
<servlet-name>WS3JaxWsServlet</servlet-name>
<url-pattern>/WS3</url-pattern>
</servlet-mapping>

</web-app>[/XML]

sun-jaxws.xml:
[XML]<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
version="2.0">
<endpoint name='WS1' implementation='com.pack.service.WS1Impl'
url-pattern='/WS1' wsdl="WEB-INF/wsdl/WS1.wsdl" />
<endpoint name='WS2' implementation='com.pack.service.WS2Impl'
url-pattern='/WS2' wsdl="WEB-INF/wsdl/WS2.wsdl" />
<endpoint name='WS3' implementation='com.pack.serviceWS3Impl'
url-pattern='/WS3' wsdl="WEB-INF/wsdl/WS3.wsdl" />
<!-- -->
<!-- -->
<!-- -->
</endpoints>[/XML]


hier eine implementierter WS
Java:
@WebService(serviceName = "WS1", portName = "WS1SOAP", targetNamespace = "http://test.net/Pack2/ws/Service", endpointInterface = "net.test.pack2.ws.service.WS1")
public class WS1Impl implements WS1{

	@Override
	public String echo(String in) {
		// TODO Auto-generated method stub
		return "Webservice1 echo: " + in;
	}

	@Override
	public DatenTyp getDaten(net.test.ws.schema.Aufruf aufruf) {
		// TODO Auto-generated method stub
		return null;
	}


}

der vollständig halber eine der WSDL:
[XML]<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://test.net/ws/Service"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
name="WS1"
targetNamespace="http://test.net/WS/Service">
<wsdl:types>
<xsd:schema targetNamespace="http://test.net/WS/Service"
xmlns:Q2="http://test.net/WS/Schema">
<xsd:import schemaLocation="WS1.xsd" namespace="http://test.net/WS/Schema"></xsd:import>

<xsd:element name="echo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="in" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="echoResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="out" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="getDaten" type="Q2:aufruf">
</xsd:element>
<xsd:element name="getResponse"
type="Q2:daten">
</xsd:element>
</xsd:schema>
</wsdl:types>
<wsdl:message name="echoRequest">
<wsdl:part element="tns:echo" name="StringToEcho" />
</wsdl:message>
<wsdl:message name="echoResponse">
<wsdl:part element="tns:echoResponse" name="EchoString" />
</wsdl:message>
<wsdl:message name="getDatenRequest">
<wsdl:part name="aufruf" element="tns:getDaten"></wsdl:part>
</wsdl:message>
<wsdl:message name="getDatenResponse">
<wsdl:part name="stammdaten" element="tns:getDatenResponse"></wsdl:part>
</wsdl:message>
<wsdl:portType name="WS1">
<wsdl:eek:peration name="echo">
<wsdl:input message="tns:echoRequest" />
<wsdl:eek:utput message="tns:echoResponse" />
</wsdl:eek:peration>
<wsdl:eek:peration name="getDaten">
<wsdl:input message="tns:getDatenRequest"></wsdl:input>
<wsdl:eek:utput message="tns:getDatenResponse"></wsdl:eek:utput>
</wsdl:eek:peration>
</wsdl:portType>
<wsdl:binding name="WS1SOAP"
type="tns:WS1">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:eek:peration name="echo">
<soap:eek:peration
soapAction="http://test.net/ws/Service/echo" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:eek:utput>
<soap:body use="literal" />
</wsdl:eek:utput>
</wsdl:eek:peration>
<wsdl:eek:peration name="getDaten">
<soap:eek:peration
soapAction="http://test.net/ws/Service/getDaten" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:eek:utput>
<soap:body use="literal" />
</wsdl:eek:utput>
</wsdl:eek:peration>
</wsdl:binding>

<wsdl:service name="WS">
<wsdl:port binding="tns:WS1SOAP" name="WS1SOAP">
<soap:address location="http://localhost:8080/ws" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

[/XML]
 

DerFeivel

Bekanntes Mitglied
Ich hab jetzt hier gerade keinen Glassfish zur Hand, aber ich bin mir sicher, dass du dir die sun-jaxws.xml kannst du dir sparen kannst. sun-jaxws.xml ist ein metrospezifischer Deskriptor der bei JSR-109 compliant Containern (wie Glassfish einer ist) nicht mehr nötig ist.


Stattdessen sollte es so auch gehen:

Implementierungsklasse
Java:
package com.pack.service;

@WebService(serviceName = "WS1", 
                   portName = "WS1SOAP", 
                   targetNamespace = "http://test.net/Pack2/ws/Service", 
                   endpointInterface = "net.test.pack2.ws.service.WS1")
public class WS1Impl implements WS1{
 
    @Override
    public String echo(String in) {
        // TODO Auto-generated method stub
        return "Webservice1 echo: " + in;
    }
 
    @Override
    public DatenTyp getDaten(net.test.ws.schema.Aufruf aufruf) {
        // TODO Auto-generated method stub
        return null;
    }
 
}

web.xml
[XML]
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">

<display-name>Mein Webservice</display-name>

<servlet>
<servlet-name>WS1JaxWsServlet</servlet-name>
<servlet-class>com.pack.service.WS1Impl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WS1JaxWsServlet</servlet-name>
<url-pattern>/WS1</url-pattern>
</servlet-mapping>

</web-app>[/XML]

Steht im targetNamespace-Attribut deiner Webservice-Implementierung eigentlich derselbe targetNamespace wie im WS1-Interface?
 

Nud3l

Gesperrter Benutzer
Also mein Hauptproblem ist nicht das mein Webservice nicht funktioniert. Ich möchte eigentlich den Webservice mitteilen, dass es meine WSDL benutzen soll und sich keinen aus den generierten Klassen zusammen setzen soll.

Daher auch die Einträge in der sunjaxws.xml.
 

DerFeivel

Bekanntes Mitglied
Das habe ich auch nicht gedacht;). Die sun-jaxws und ein paar der Einträge in der web.xml sind auf einem AppServer der jaxws unterstützt nicht notwendig. Mit meinem Hinweis wollte ich nur dir Anzahl der möglichen fehlerstellen minimieren (du konfigurierst ja deinen ws einmal über annotationen und einmal über xml...)
 

Nud3l

Gesperrter Benutzer
Ich habe jetzt versucht die wsdlLocation manuell über die Annotation zu definieren.

ich habe folgendes ausprobiert.

Java:
wsdlLocation  = "C:\\Projekte\\Eclipse\\workspace\\Test\\src\\main\\webapp\\WEB-INF\\wsdl\\WS1.wsdl"
wsdlLocation  = "src\\main\\webapp\\WEB-INF\\wsdl\\WS1.wsdl"

Aber sobald ich da was angegeben habe konnte das gebaute war-File nicht mehr deployed werden. Was ist dadran denn falsch?
 

Nud3l

Gesperrter Benutzer
Nach etwas rum probieren hat es nun schlisslich geklappt mit


Java:
@WebService(serviceName = "WS1", 
                   portName = "WS1SOAP", 
wsdlLocation  = "WS1.wsdl"
                   targetNamespace = "http://test.net/Pack2/ws/Service", 
                   endpointInterface = "net.test.pack2.ws.service.WS1")
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Error beim Versuch, einen Webservice zu kontaktieren SOA 4
J SOA WebService JAX-WS Java-Klasse per wsimport generieren lassen SOA 3
K Webservice: 4 counts of IllegalAnnotationExceptions SOA 0
D Zertifikat Authentifizierung am Webservice SOA 0
P JBOSS 7 und Restful Webservice SOA 1
N WebService Ausgabe einer ArrayList SOA 2
N Web Services Client aus externen WebService erstellen SOA 4
I SOAP Webservice Methoden und Parameter auslesen SOA 3
F [WebService] Array von eigenen Objekten SOA 0
P SOAP Webservice mit HTTP Basic Authentifizierung SOA 1
M JAVA Webservice Währungsrechner DRINGEND Hilfe SOA 1
A Up-/ Download von Dateien zu WebService SOA 6
D WebService Technik - Aufwand Änderung des Application Server SOA 3
R Webservice Timeout Konfiguration SOA 3
D SOAP Webservice (SAP) SOA 3
MQue WebService Versionierung SOA 9
L [AXIS2] OutOfMemory Exception bei Übertragung von größerer Datei via Webservice SOA 3
A Funktion mit Map als WebService SOA 4
T Webservice serviceName im Handler ermitteln SOA 3
M Edit und Remove über Webservice SOA 3
F Client Problem gegen Webservice SOA 3
P Java Webservice mit JWS Bindingnamen customizen SOA 4
L wie ArrayList an Webservice geben? SOA 3
B Webservice Config / SoapStub: Best Practice SOA 3
S Objektübertragung Fehler über Webservice SOA 10
E Webservice durch Java ansprechen SOA 7
L Webservice HTTPS Netbeans SOA 2
G NullPointerException bei Parameterübergabe an Webservice mittels kSoap2 SOA 2
M Webservice per URL ansprechen SOA 14
M Webservice Client erstellen und XML Request senden SOA 3
T Verwendung von Eclipse Projekten im Axis2 Webservice SOA 8
S Webservice als "CronJob" SOA 4
M Webservice (JaxWS) extern verfügbar machen SOA 5
M Welches WebService Framework ist denn das beste FRAMEWORK? SOA 5
D Webservice fürs Internet sichtbar machen SOA 2
W WebService aus einer HTML-Seite SOA 9
T WebService innerhalb von Seam-Projekt, komplexe Datentypen SOA 6
N JAX-WS WebService und Tomcat 7 SOA 11
E Trennung von Daten und WebService und Wiederverwendung der Daten SOA 2
D Sicherheit bei REST-Webservice SOA 19
G WebService, was darf der Client alles sehen SOA 19
M Nutzen des Webservice AWSECommerceService SOA 1
S AXIS2 Webservice: Umgang mit komplexen Datentypen SOA 5
G Webservice Contract first SOA 8
G WebService -> ServletFilter SOA 2
G WebService Concurrency SOA 19
M Fehler beim Veröffentlichen eines Webservice SOA 6
G WebService Types SOA 7
G OpenLigaDB Webservice Client SOA 4
G WebService WSDL SOA 3
A PHP WebService aus Java aufrufen SOA 2
R Proxy WebService erstellen SOA 3
G JPA/ Webservice: Passwort Feld einer Klasse fürs Lesen "verschleiern" SOA 10
G WebService mit wsdl erstellen SOA 4
P WebService SOA 6
H Webservice: BindingProvider SOA 6
D WebService DB abfrage SOA 4
mabe83 EJB Klassen für Webservice nutzen SOA 2
S Webservice-Client-Klasse gibt immer null zurück SOA 3
G WebService mit komplexen Objekten SOA 5
C Problem mit Java Webservice - SOAPBinding.Style - Wrapper class fehlt SOA 1
T Rest Webservice der 2 verschiedene XML Objekte(JaxB) entgegennimmt SOA 10
S Webservice, Vererbung und Netbeans SOA 3
E Lesen der kompletten SOAP als WebService Provider/Server SOA 4
T WebService Authentifizierung SOA 11
mabe83 Suche Hilfe zum Thema Webservice + EJB SOA 3
T WebService erstellen SOA 28
T Krankes Vorhaben: Von VB auf Java Webservice SOA 10
M Webservice RuntimeModelerException? SOA 5
G Webservice mit Java aufrufen SOA 2
G WebService: mehrere methoden mit demselben Namen SOA 4
T einfacher Webservice SOA 3
G Webservice im JBoss: runtime modeler error SOA 3
V webservice von aussen (webbrowser) ansprechen SOA 2
V Webservice, allgemeine Fragen SOA 9
G Alfresco - WebDav oder WebService SOA 2
0 Webservice nutzen (rpc/enc style) SOA 2
R XML verschicken mit Webservice Server Client SOA 2
R Webservice aufrufen mit SOAP Style.DOCUMENT ? SOA 5
G Webservice zugreifen SOA 6
G Deploy Apache CXF WebService mit Eclipse SOA 2
G Webservice mit JSON SOA 8
T Webservice über Tomcat loggen SOA 5
thE_29 WebService - JAXBElement - richtige Klasse? SOA 2
L Probleme mit komplexen Datentypen in einen Webservice SOA 2
O brauche hilfe bei java/webservice geschichte SOA 29
M Webservice/ Axis/ Bea Weblogic Server 8.1 SOA 12
E Webservice konfigurieren SOA 2
Y Webservice erstellen SOA 4
F Tutorial zu WebService mit JBoss, Eclipse und Jax-ws? SOA 3
C Webservice im Unternehmen SOA 4
L webservice frage (eclipse/wtp, wsdl) SOA 12
U Webservice mit Axis, Hello World Beispiel SOA 2
J Frage zu Webservice SOA 3
L WebService TestClient Problem SOA 2
M Fehlermeldung beim Einbinden der wsdl in SoapUI invalid__wsdl SOA 10
T wie keystore in axis einbinden? SOA 7
P WSDL Generierung mit Axis 2 falsch? SOA 3
D [SOAP] wsdl & maven & java 1.8 SOA 6
N WSDL verändern der deploy loacation SOA 2

Ähnliche Java Themen

Neue Themen


Oben