[WS][BPEL][Axis] 404-HTTP error bij invokatie

Pagina: 1
Acties:

  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
Momenteel heb ik een werkende webservice geimplementeerd en gedeployed met behulp van "Systinet Server for Java 6.5.4". Deze service is toegangkelijk op 'http://localhost:6060/flight'.
Het is een zeer eenvoudige webservice die vluchtgegevens beschikbaar stelt. De enige operatie die mogelijk is, is 'getFlightByDestinationCity' die een string als input verwacht en een string als output teruggeeft.
Wanneer ik deze webservice invokeer via een tooltje zoals Eclipse Webservices Explorer werkt dit gewoon goed.

Verder heb ik ook een BPEL process die deze webservice invokeert. Dit BPEL process loop goed, behalve het invokeren van de WS lukt niet.
Het BPEL process resulteert na deployment in een AXIS webservice. Dus, als ik het goed heb, kan ik Apache AXIS gebruiken om mijn BPEL process te runnen. Mijn BPEL-process stelt een operatie beschikbaar: "getBookingInformation" die ook een stad als input verwacht.

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package client;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

    
public class Client {
        
    public static void main(String[] args) throws Exception  {
    
        String endpoint =
          "http://localhost:8080/active-bpel/services/BookingService";
       
        Service  service = new Service();
        Call     call    = (Call) service.createCall();
   
        call.setTargetEndpointAddress( new java.net.URL(endpoint) );
        call.setOperationName("getBookingInformation");
   
        String ret = (String) call.invoke( new Object[] { "dublin" } );
   
        System.out.println("Sent 'dublin!', got '" + ret + "'");
    }
}


Het resultaat echter is de volgende:
Exception in thread "main" AxisFault
faultCode: {http://xml.apache.org/axis/}HTTP
faultSubcode:
faultString: (404)Not Found
faultActor:
faultNode:
faultDetail:
{}string:return code: 404
<HTML>
<HEAD>
<TITLE>Error 404 Not Found</TITLE>
<BODY>
<H2>HTTP ERROR: 404 Not Found</H2>
<!-- Padding for IE --><!-- Padding for IE --><!-- Padding for IE --><!-- Padding for IE --><!-- Padding for IE --><!-- Padding for IE --><!-- Padding for IE --><!-- Padding for IE --><!-- Padding for IE --><!-- Padding for IE -->
</BODY>
</HTML>

404


(404)Not Found
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:221)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:128)
at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
at org.apache.axis.client.Call.invoke(Call.java:2748)
at org.apache.axis.client.Call.invoke(Call.java:2424)
at org.apache.axis.client.Call.invoke(Call.java:2347)
at org.apache.axis.client.Call.invoke(Call.java:1804)
at client.Client.main(Client.java:23)
Heeft iemand hier soms meer ervaring met (het oplossen van) dergelijke issues ?
Ik heb al verschillende dingen uitgetest, zoals configuraties. Ook de URL's van mijn WSDL-files zijn correct.
Wanneer ik mijn 'flight'-webservice via bovenstaande java-code wil invokeren, krijg ik eveneens dezelfde foutmelding.

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:25
Ik snap niet waarom je zegt dat die webservice op poort 6060 beschikbaar is, en je in je url 8080 als poort meegeeft.

Of mis ik iets van het verhaal ?
Wat doet dat BPEL proces precies ? Je zegt dat dat BPEL process 'resulteert' in een webservice ?
Maakt dat BPEL proces een webservice van die webservice ? :? En is deze 'nieuwe' webservice dan toegankelijk op 8080 ?

https://fgheysels.github.io/


  • TheNameless
  • Registratie: September 2001
  • Laatst online: 07-02-2025

TheNameless

Jazzballet is vet!

Is je endpoint wel goed?
Dit kan je gewoon testen in een webbrowser zoals Firefox.

Voor zo ver ik weet duid de "?wsdl" stuk in je endpoint naar een webservice waarmee je je WSDL kan opvragen. Je zou het kunnen proberen zonder dat stuk.

Ducati: making mechanics out of riders since 1946


  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
Na nog wat zoekwerk, weet ik nu dat mijn java-client het BPEL process correct kan aanroepen. Wanneer ik in mijn BPEL process mijn 'flight' webservice wil invokeren, krijg ik die 404 fout. Dus het probleem ligt bij mijn zelfgebouwde webservice.

Mijn BPEL-process, dat ook een webservice is, draait via de activeBPEL engine op mijn Tomcat webserver op poort 8080.
Mijn 'Flight' webservice draait op 'Systinet Server for Java'. Deze server draait op poort 6060.

BPEL is een workflow language. Daarmee is het 'eenvoudig' om business-processen erin te implementeren. BPEL is ook ontwikkeld met het oog op composition van webservices. Dus via BPEL kun je dus een webservice ontwikkelen die op zijn beurt opnieuw webservices aanspreekt ten einde het business-process te kunnen uitvoeren.
Vb: boeken van reizen - SN Brussels Airlines heeft een webservice voor vlucht-informatie en JetAIR heeft een webservice om hotels te boeken. Ik kan dus nu een BPEL process maken om een reis te boeken die gebruik maakt van deze twee webservices.

Tot hier een zeer korte inleiding tot BPEL. :)

Wanneer ik mijn 'flight' webservice test op mijn Systinet Server, krijg ik dit als resultaat:

[quote]
Input message
Following message was sent to the service at http://213.224.226.145:6060/flight/

code:
1
2
3
4
5
6
7
8
  <?xml version="1.0" encoding="UTF-8"?>
  <e:Envelope xmlns:e="http://schemas.xmlsoap.org/soap/envelope/">
    <e:Body>
      <tns:getFlightByDestinationCity xmlns:tns="http://systinet.com/wsdl/service/flight/">
        <tns:p0>dublin</tns:p0>
      </tns:getFlightByDestinationCity>
    </e:Body>
  </e:Envelope>


Output message
Following message has been received

code:
1
2
3
4
5
6
7
8
9
10
  <?xml version="1.0" encoding="UTF-8"?>
  <e:Envelope xmlns:d="http://www.w3.org/2001/XMLSchema" xmlns:e="http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:wn0="http://systinet.com/wsdl/service/flight/"
   xmlns:wn1="http://idoox.com/interface">
    <e:Body>
      <wn0:getFlightByDestinationCityResponse>
        <wn0:response i:type="d:string">flight to DUBLIN</wn0:response>
      </wn0:getFlightByDestinationCityResponse>
    </e:Body>
  </e:Envelope>


Dus dat is toch het bewijs dat mijn webservice correct werkt ?
Ik ga intussen eens testen met een 3rt party webservice...

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
TheNameless schreef op donderdag 26 oktober 2006 @ 12:19:
Is je endpoint wel goed?
Dit kan je gewoon testen in een webbrowser zoals Firefox.

Voor zo ver ik weet duid de "?wsdl" stuk in je endpoint naar een webservice waarmee je je WSDL kan opvragen. Je zou het kunnen proberen zonder dat stuk.
Inderdaad, mijn client-code is nu zonder "?wsdl", maar het resultaat is hetzelfde.

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:25
TheNameless schreef op donderdag 26 oktober 2006 @ 12:19:
Is je endpoint wel goed?
Dit kan je gewoon testen in een webbrowser zoals Firefox.

Voor zo ver ik weet duid de "?wsdl" stuk in je endpoint naar een webservice waarmee je je WSDL kan opvragen. Je zou het kunnen proberen zonder dat stuk.
Dat dacht ik trouwens ook. :P Die ?wsdl geeft je gewoon de beschrijving van je webservice terug.

https://fgheysels.github.io/


  • TheNameless
  • Registratie: September 2001
  • Laatst online: 07-02-2025

TheNameless

Jazzballet is vet!

Feyd-Rautha schreef op donderdag 26 oktober 2006 @ 12:26:
[...]


Inderdaad, mijn client-code is nu zonder "?wsdl", maar het resultaat is hetzelfde.
Als je je endpoint in je browser opent hoor je gewoon XML terug te kijken, dus dat is al een makkelijke manier op te testen of je endpoint goed is.

Als het in je browser gewoon werkt, dan is er genoeg reden om het toch de fout bij ActiveBPEL te leggen.

Over BPEL, ik weet wat het is, ben namelijk zelf ook met Workflows bezig, sterker nog ik ben zelf een Workflow systeem aan het bouwen :)

[ Voor 9% gewijzigd door TheNameless op 26-10-2006 14:16 ]

Ducati: making mechanics out of riders since 1946


  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
Met een externe web-service werkte het onmiddellijk.
En nu werkt het ook met mijn eigen webservice. Heel vreemd want ik heb geen echte aanpassingen doorgevoerd. Enkel een 'ant build' file gemaakt en Tomcat eens heropgestart...

Eindelijk... na 3 dagen :)

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.


  • whoami
  • Registratie: December 2000
  • Laatst online: 21:25
Die Tomcat draait toch op je pc, en AFAIK leg je die pc ook wel eens af, dus.... iedere keer dat je boot wordt die tomcat opgestart... Denk dus niet dat het dat kan zijn ?

https://fgheysels.github.io/


  • TheNameless
  • Registratie: September 2001
  • Laatst online: 07-02-2025

TheNameless

Jazzballet is vet!

Dat zijn idd dingen die wel eens voor kunnen komen :)

Beetje een offtopic vraagje, maar ik ben gewoon nieuwsgierig: maar waar maak je je BPEL definities mee? Ik ben namelijk van plan om ook wat met ws4bpel te gaan doen.

Ducati: making mechanics out of riders since 1946


  • Feyd-Rautha
  • Registratie: November 2001
  • Laatst online: 02-08-2025
Momenteel gebruik ik geen IDE voor mijn BPEL processen. Ik doe dit gewoon om de syntax goed te kennen.
Maar als je een heel goede editor wil vinden, moet je eens kijken naar www.activebpel.org . Daarin staat een link om de editor 'ActiveBPEL Designer' te downloaden. Volledig sleur en pleur werk en allemaal gratis :)

[ Voor 9% gewijzigd door Feyd-Rautha op 26-10-2006 21:19 ]

I must not fear. Fear is the mind-killer. Fear is the little-death that brings total obliteration. I will face my fear. I will permit it to pass over me and through me. Where the fear has gone there will be nothing. Only I will remain.

Pagina: 1