webservice frage (eclipse/wtp, wsdl)

Status
Nicht offen für weitere Antworten.

locibin

Mitglied
hallo gemeinde

ich hab mich schon bei sehr vielen quellen informiert und komme einfach nicht weiter... darum frage ich hier mal nach.

umgebung:
- ich arbeite mit eclipse/wtp und tomcat 5.5

was funktioniert / was ist bestehend:
- mein webservice läuft. (der code wurde via wsdl erstellt, und mir dann gegeben)
- den webservice starte ich via eclipse (dynamic web project run on server (tomcat))
- dazu habe ich eine seperate, ganz normale java applikation, welche (noch) nix mit dem webservice zu tun hat.

frage/problem:
- wo muss ich nun meine applikation einbinden, damit ich bei einem aufruf des webservices die anfrage in meiner applikation weiterverarbeiten kann? also in welcher klasse und wo muss ich meine applikation starten?

es gibt folgende klassen:

...Locator.java
...Soap.java
...SoapImpl.java (diese wird bei einem aufruf des webservices aufgerufen)
...SoapSkeleton.java
...SoapStub.java


schon mal besten dank für tipps!

grüsse, locibin
 

locibin

Mitglied
hat niemand eine ahnung?

ich bin absoluter laye auf diesem gebiet. das sollte doch für die einen leute hier ein kinderspeil sein! :wink:
 

SnooP

Top Contributor
also du kannst ja mit wtp vermutlich einen client für deinen webservice schreiben (generieren lassen)... diesen code kannst du dann doch einfach in deine bestehende applikation an der entsprechenden stelle einfügen... der client nutzt dann die von dir oben gelisteten Klassen für die Kommunikation mit dem ws.
 

locibin

Mitglied
danke für deine antwort, aber, hmm.. einen client hab ich schon. der funktioniert auch super. das ist eigentlich nicht das problem.

meine frage ist eher: wie bzw. wo kann ich eine seperate applikation starten, wenn der webservice gestarted wird.

oder anderst gefragt: gibts in solch einem webservice irgend ne initialize klasse wo ich meine seperate applikation starten kann?
 
G

Guest

Gast
weiss echt niemand wie man bei tomcat klassen laden kann (also nicht im eclipse sondern manuell)?
 
S

SlaterB

Gast
so ein WebService-Objekt muss ja auch irgendwann mal erzeugt werden, notfalls direkt vorm ersten Request,
nützt dir da das Überschreiben des Default-Konstruktors etwas?

ansonsten kannst du auch zu Beginn jeder Operation das andere Programm starten oder ist das zu spät?

in beiden Fällen aufpassen dass die andere Applikation nur einmap gestartet wird
 

locibin

Mitglied
SlaterB hat gesagt.:
so ein WebService-Objekt muss ja auch irgendwann mal erzeugt werden, notfalls direkt vorm ersten Request,
nützt dir da das Überschreiben des Default-Konstruktors etwas?

ansonsten kannst du auch zu Beginn jeder Operation das andere Programm starten oder ist das zu spät?

in beiden Fällen aufpassen dass die andere Applikation nur einmap gestartet wird

das problem ist, dass bei jedem aufruf des webservices davon ein objekt erstellt wird. wenn ich also den konstruktor überschreibe und in diesem meine applikation starte, gibt es bei jedem aufruf des webservices eine neue instanz meiner applikation.

ich möchte aber meine applikation von anfang an, und nur einmal, parallel zum webservice laufen lassen. der webservice sollte aber die referenz auf das applikations objekt kennen.. ist denn das echt nicht möglich?

bin jetzt schon tage an dem problem und brings einfach nicht gebacken.. gibts denn noch andere möglichkeiten?
 
S

SlaterB

Gast
das scheint mir kein Problem:

Code:
public Service {

private static boolean serviceInitialized = falsE;

public Service() {
  Service.initService();
  // ....
}

private static void initService() {
   if (serviceInitialized) {
     return;
   }
   synchronized(Service.class) {
     if (serviceInitialized) {
       return;
     }
     serviceInitialized = true;
     // ....
  }
}

}
 

locibin

Mitglied
danke! also das problem, dass jedes mal ein objekt erstellt wird wäre somit gelöst. aber ein anderes ist aufgetaucht:

obwohl in der eclipse umgebung alles in ordnung ist erhalte ich nun eine exception dass er irgendwelche klassen nicht findet (welche aber mit external jars im projekt hinzugefügt sind) sehr seltsam:

java.lang.NoClassDefFoundError: com/netmodule/jpc/driver/opc/JOPCBridge
at ch.vrag.du.zg.opc.OpcMain.initOpc(OpcMain.java:107)
at ch.vrag.du.zg.opc.OpcMain.<init>(OpcMain.java:58)
at ch.vrag.du.zg.schnittstelle.Main.init(Main.java:61)
at ch.vrag.du.zg.schnittstelle.Main.<init>(Main.java:34)
at ch.zg.uels.Telegramm.WebServiceUELSZgSoapSkeleton.<init>(WebServiceUELSZgSoapSkeleton.java:56)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at java.lang.Class.newInstance0(Class.java:350)
at java.lang.Class.newInstance(Class.java:303)
at org.apache.axis.providers.java.JavaProvider.makeNewServiceObject(JavaProvider.java:385)
at org.apache.axis.providers.java.JavaProvider.getNewServiceObject(JavaProvider.java:235)
at org.apache.axis.providers.java.JavaProvider.getServiceObject(JavaProvider.java:91)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:287)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)[/quote]
 
S

SlaterB

Gast
wichtig ist auf dem Platz bzw. im Tomcat, da interessiert es nur teilweise was Eclipse anzeigt,

es würde interessieren wenn das Deployment so gebaut ist,
dass es genau diese Libaries nimmt und mitschickt,

ansonsten manuell mitgeben,
einfach mal schauen was in den diversen lib-Verzeichnissen vorhanden ist,
dein Einzelprojekt (im Tomcat!) müsste eins haben,
und ein gemeinsames (common/lib) sollte auch vorhanden sein

falls die Libaries nicht irgendwo innerhalb von Tomcat auftauen und ein Kopieren auch nicht so wirklich angebracht erscheint,
gibts auch noch die Hoffnung auf Konfigurationseinstellungen im importieren,

am elegantesten ist vielleicht das Einfügen der Libary in die System-Umgebungsvariable CLASSPATH,
weiß aber nich genau inwieweit diese berücksichtig wird
 
G

Guest

Gast
ja hab zu test zwecken die libraries in den java jdk/sdk ordner verschoben.. muss dann schlussendlich wenn alles autonom (nicht über eclipse) laufen muss, sowieso nochmals alles genau anschauen bzgl. libraries etc..

danke für die hilfe!
 
F

Fiesa

Gast
Hey,

es gibt übrigens noch eine elegantere Version den Service zu initialisieren als die von SlaterB genannte:

da Du ja Deinen Web Service anscheinend mit Hilfe von Jax-RPC entwickelst, hast Du die Möglichkeit das Interface ServiceLifecycle von Deiner SoapImpl.java implementieren zu lassen, so dass Dir zu diesem Zweck eine Art Kon- bzw Destruktor für den Service zur Verfügung stehen

-->

Code:
public void init(Object context) throws ServiceException { }

public void destroy() { }

Diese Vorgehensweise hat noch weitere Vorteile:

Der Parameter context ist, sofern der Service-Endpoint natürlich in einem Servlet-Container in Betrieb genommen wird (was, wie man munkelt, ja durchaus sinnvoll ist :D ), vom Typ javax.xml.rpc.server.ServletEndpointContext. Über dieses Objekt bekommst Du Zugriff auf den anfragenden Benutzer und die verschiedenen Kontexte für den Datenaustausch (wie beim normalen Servlet ebend). Darüber hinaus bietet Dir der ServletEndpointContext aber auch Möglichkeiten speziell für einen Web Service:

Das Interface eröffnet Dir mit der Methode getMessageContext() Zugriff auf die SOAP-Message des Requests, vorrausgesetzt Du machst einen 'downcast' zu SOAPMessageContext.

Hoffe das hilft Dir weiter,

Fiesa
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Frage zu Webservice SOA 3
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
N Webservice Einbinden wsdl SOA 7
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
U Webservice mit Axis, Hello World Beispiel SOA 2
L WebService TestClient Problem SOA 2
G Frage zu Applikationsdesign. Bitte um Unterstützung ;) SOA 3
G Frage zu Restful URI Adressierung SOA 2
N wie exportiert man Jersey Projekt mit Eclipse. SOA 0
E SOAP-Endpunkt per Eclipse-Wizard erstellt, wie nun mit Auth schützen? SOA 2
J JAX-WS, Eclipse und seltsame, aber wiederkehrende Fehler SOA 2

Ähnliche Java Themen

Neue Themen


Oben