Avatar billede kernelx Juniormester
13. november 2008 - 15:10 Der er 6 kommentarer og
1 løsning

WSDL-check

Hi,

jeg har en byte[]-variable. Denne byte[]-variable indeholder en
XML-SOAP-Request.

Desuden har jeg en WSDL-fil, som definerer en add-operation med parameter a og b.
Jeg arbejder med netbeans 6.1

Nu vil jeg gerne generere en class, ud af WSDL-filen, som er bygget i foelgende stil:

public class WebServiceTest {

  public WebServiceTest( byte[] request ) {
    // finde ud af param-values og call methoden add
  }

  public void add( Integer a, Integer b ) {

  }

}


findes der allerede noget, som kan generere lignene classes ud af en WSDL-fil?

Mit problem er, at det jeg vil lave IKKE direkte skal vaere bundet til en glassfish eller tomcat. den skal altsaa checke imod en byte[] eller InputStream - og ikke direkte vaere connected til en servlet.

med venlig hilsen
KernelX
Avatar billede kernelx Juniormester
13. november 2008 - 15:13 #1
ok, der skal nok väre en mulighed for en response.
Altsaa noget i denne stil:

public class WebServiceTest {

  public WebServiceTest( byte[] request ) {
    // finde ud af param-values og call methoden add
  }

  private void add( Integer a, Integer b ) {
    // action
    this.response = a + b;
  }

  private Integer response = null;

  public Integer getResponse() {
    return this.response;
  }

}
Avatar billede arne_v Ekspert
13. november 2008 - 15:27 #2
Find et web service toolkit og stjæl fra det.

F.eks. Axis(2).

WSDL2Java utility kan konvertere fra WSDL til Java klasse.

Og i server koden må der være noget som konverterer fra SOAP XML til objekt.
Avatar billede kernelx Juniormester
13. november 2008 - 15:34 #3
er der en god doku til det?

Jeg er bange for, at axis ikke har muligheden for at lave en klasse, som har en byte[] eller InputStream med XML-SOAP som input - og i stedet for generer en komplet ny webservice med HTTP - eller bundet til tomcat eller glassfish.
Avatar billede arne_v Ekspert
14. november 2008 - 04:23 #4
Næppe.

Hvis jeg ikke skal lave have arbejde i weekenden, så kan jeg prøve og se om jeg kan finde
noget.
Avatar billede kernelx Juniormester
17. november 2008 - 16:06 #5
jeg har lavet en "Axis2 Service from WSDL".
Det virker ellers meget fint.
Problemet er bare, at jeg skal have mulighed for selv at styre web.xml og servlet-klassen.

Det som automatisk bliver genereret i WEB-INF, vil jeg selv manipulere lidt rundt paa.
Avatar billede kernelx Juniormester
18. november 2008 - 15:01 #6
Servlet:
http://localhost:8080/ws/*

Mit servlet parser REQUEST_URI og kan se, om der staar "live" eller "test".
http://localhost:8080/ws/test/*
http://localhost:8080/ws/live/*
Hvis der staar "live" skal min webservice connecte til en datasource fra en live-database. Hvis der staar "test", skal der bruges en datasource fra en test-database.

Jeg har en config-fil, som indeholder foelgende informationer:
datasource_live_abc1 = jdbc/abc1
datasource_test_abc1 = jdbc/abc1_test

Desuden vil jeg selv bestemme hvilken axis2-webservice-class der bliver kaldet.
f.eks.: http://localhost:8080/ws/live/calculator/add?a=1&b=2
... og det - uden at der staar noget med .../services/... i min URL.

Saa vil for det foerste selv tage imod en request - med min egen HttpServlet, og for det andet skal min Axis2-Methode have fat i en form for registry (hvor der staar noget som live/test, etc.)
Avatar billede kernelx Juniormester
11. december 2008 - 08:22 #7
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester