Avatar billede wise Seniormester
11. november 2005 - 10:56 Der er 4 kommentarer og
1 løsning

WSDL problem med fil lavet via Java2wsdl med axis

Hej kloge mennesker

BEMÆRK selvom problemet opstår ved VBA, så er jeg 99,9% sikker på at fejlen ligger i den AXIS-genererede wsdl fil.. Blot for at komme evt kommentarer i forkøbet..

Jeg har selv kun meget lille erfaring med Java, men er ved at lære..:-)

Jeg er dog dybt involveret i et projekt hvor vi kører en Jboss server hvor der kommunikeres via soap. Mit projekt pt går på at lave hul fra Excel2003/VBA til denne server. Det er også nemt når man har en WSDL-fil.
Vi har en fungerende connection der er lavet med soap20 og via manuel programmering, men jeg ville gerne over på wsdl. Serveren kører en gammel version af apache-soap fremfor Axis og kan derfor ikke auto-generere disse. Den kan ikke opgraderes lige nu.

Jeg har nu prøvet lokalt på min pc at generere en WSDL fil udfra den javakode jeg ved anvendes.
De simple metoder oprettes fint, men de mere komplekse giver problemer (så vidt jeg kan bedømme)
Jeg kan loade wsdl'en i soapclient.com og connecte via de simple (testfunktioner) men ikke via de rigtige, og når jeg søger at indlæse den i mit XML tool eller i Excel VBA fejler de blot ved indlæsning af filen...

Det nærmeste jeg er kommet en fejlmeddelse er dette fra VBA-importens log...
App: E 'Thu Nov 10 22:01:12 2005': MSSOAP - " Soap error: Analyzing the WSDL file failed.  "
App: E 'Thu Nov 10 22:01:12 2005': MSSOAP - " Soap error: Initialization of the port for service SOAPInterfaceService
failed.  "
App: E 'Thu Nov 10 22:01:12 2005': MSSOAP - " Soap error: Analyzing the binding information for port
rpcrouter failed.  "
App: E 'Thu Nov 10 22:01:12 2005': MSSOAP - " Soap error: An operation for port rpcrouter could not be
initialized.  "
App: E 'Thu Nov 10 22:01:12 2005': MSSOAP - " Soap error: Initializing of the input message failed for
operation main.  "
App: E 'Thu Nov 10 22:01:12 2005': MSSOAP - " Soap error: Initialization of a SoapMapper for operation
main failed.  "
App: E 'Thu Nov 10 22:01:12 2005': MSSOAP - " Soap error: The schema definition with a targetnamespace
of http://schemas.xmlsoap.org/soap/encoding/ for SoapMapper string could not be found.  "

Jeg tror at det er sådanne dele af wsdl'en den ikke kan lide
  <wsdl:message name="getClientsResponse">
      <wsdl:part name="getClientsReturn" type="soapenc:string"/>
  </wsdl:message>
Men i Java står respons for den funktion til
public String getClients(String username, String password, String regionID) throws UserException, RemoteException

Hvorfor søren bliver det så til soapenc:string fremfor xsd:string som jeg mener det burde være...

Alle ideer er velkomne...

/Lasse
Avatar billede arne_v Ekspert
11. november 2005 - 20:36 #1
Jeg mener ikke at kan angive det til Java2WSDL.

Du må rette det manuelt.

Hvis du opgraderer til Axis som toolkit og lader det automatisk generere WSDL, så
kan du angive:

<globalConfiguration>
    ...
    <parameter name="dotNetSoapEncFix" value="true"/>
</globalConfiguration>

så får du xsd:string fremfor soapenc:string !
Avatar billede wise Seniormester
14. november 2005 - 12:05 #2
Ok, tak for svaret. Jeg må kigge mere på det når vi på et tidspunkt kan få opgraderet til axis... Jeg har btw droppet denne wsdl og fået hul igennem manuelt...
Avatar billede wise Seniormester
14. november 2005 - 12:06 #3
Smid et svar så du kan få points for hjælpen :-)
Avatar billede arne_v Ekspert
14. november 2005 - 14:23 #4
ok
Avatar billede wise Seniormester
23. november 2005 - 15:08 #5
Hov, det havde jeg ikke set...
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