Avatar billede krukken Mester
11. januar 2005 - 16:09 Der er 65 kommentarer og
1 løsning

wsdl2java - hvordan er det nu man gør?

Jeg har nogle problemer med at få oprettet forbindlelse til en webservice. Jeg har et wsdl-dokument som skal konverteres til java. Skal man have installeret axis for at gør det? Er der nogle som vil hjælpe mig med konverteringen?
Avatar billede arne_v Ekspert
11. januar 2005 - 16:19 #1
Det står dig jo frit for selv at kode noget eller at vælget et andet toolkit end
Axis, men jeg vælge downloade Axis og bruge deres wsdl2java.

Der er et eksempel på kommandoen i min Axis artikel.
Avatar billede arne_v Ekspert
11. januar 2005 - 16:20 #2
Avatar billede krukken Mester
11. januar 2005 - 16:22 #3
Men jeg har ingen server kørende på min computer - skal man ikke have det for at bruge axis?
Avatar billede arne_v Ekspert
11. januar 2005 - 16:31 #4
Hvis du vil bruge Axis server delen: ja.

Hvis du vil bruge Axis client delen: nej.
Avatar billede krukken Mester
11. januar 2005 - 16:38 #5
Jeg ved ikke lige hvad jeg vil bruge - jeg skal have lavet en .java-file ud fra det wsdl-dokument jeg har.
Avatar billede arne_v Ekspert
11. januar 2005 - 16:41 #6
Det er client delen.
Avatar billede arne_v Ekspert
11. januar 2005 - 16:43 #7
wsdl2java er et helt normalt Java program som man giver en UTL for WSDL filen og
så genererer den Java kode, som man compiler helt normalt og bruger i sit
program til at kalde web servicen med.
Avatar billede arne_v Ekspert
11. januar 2005 - 16:43 #8
URL ikke UTL
Avatar billede krukken Mester
11. januar 2005 - 17:04 #9
Og hvor finder man dette java-program?
Avatar billede arne_v Ekspert
12. januar 2005 - 07:36 #10
Du downloader Axis og unzipper. Det kommer med den.
Avatar billede krukken Mester
13. januar 2005 - 16:21 #11
Jeg har prøvet at download axis flere gange - men den er ikke med.
Avatar billede arne_v Ekspert
13. januar 2005 - 16:26 #12
Hvad mener du med ikke med ?

De relevante klasser ligger inde i en af jar filerne.

Se eksemplet på hvordan man kører i min artikel.
Avatar billede krukken Mester
13. januar 2005 - 22:47 #13
Hej igen.

Ja - har kigget din artikel igennem og har fundet dette - det er vist det man bruger til at konvertere:
java -classpath axis.jar;commons-logging.jar;log4j-1.2.8.jar;commons-discovery.jar;wsdl4j.jar;jaxrpc.jar;saaj.jar org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/services/SortService?wsdl

Men i hvilket bibliotek skal være for at dette fungere? Og det er jo ikke localhost - men en anden ip-adresse, og det kender jeg vist ikke.
Avatar billede arne_v Ekspert
13. januar 2005 - 22:51 #14
Ovenstående forudsætte at alle de jar filer ligger i current dir. Ellers skal du
have fuld sti på dem alle.
Avatar billede arne_v Ekspert
13. januar 2005 - 22:52 #15
Enten kan du give en file URL på hvor WSDL filen er tilgæmgelig eller du kan
give den en file URL på der hvor den ligger på din PC.
Avatar billede krukken Mester
13. januar 2005 - 23:02 #16
SOrry - du må godt ligge et svar. Jeg er har fået konverteret min wsdl-fil:-)
Avatar billede arne_v Ekspert
13. januar 2005 - 23:03 #17
ok
Avatar billede krukken Mester
14. januar 2005 - 00:09 #18
Jeg har et lille probelm - hvia du gider at hjæpe mig.

Den wsdl-fil jeg oversætter bruger en række .xsd-filer når de oversættes. Problemet opstår på wsdl-filen er blevet oversat, da lader til at der bruge være blevet lavet en klasse for hver af de xsd-filer, men de findes ikke - og der opstår en fejl når jeg compilere.
Avatar billede arne_v Ekspert
14. januar 2005 - 00:13 #19
De ligger ikke i et andet dir/pakke ?
Avatar billede krukken Mester
14. januar 2005 - 00:29 #20
Nej - desværre ikke.
Avatar billede krukken Mester
14. januar 2005 - 00:30 #21
Du kan finde dem her: http://cvr.dk/cvr-online.html under dokumentation. Gider du at prøve at konvetere dem - og se om du får samme fejl?
Avatar billede arne_v Ekspert
14. januar 2005 - 23:45 #22
Det første jeg gjorde var at skifte fra manuel build til build med ant.

Men jeg fik først fejl.

Men ved at skifte fra Axis 1.1 til 1.2RC2 fik jeg detfaktisk til at compile !
Avatar billede arne_v Ekspert
14. januar 2005 - 23:45 #23
Min build.xml:

<project name="cvrtest" default="build">
    <path id="axis.classpath">
        <fileset dir="/jakarta/axis-1_2RC2/lib">
            <include name="**/*.jar"/>
        </fileset>
    </path>
    <taskdef resource="axis-tasks.properties" classpathref="axis.classpath"/>
    <target name="gen">
        <axis-wsdl2java output="." url="http://cvr.dk/CVR.wsdl"/>
    </target>
    <target name="build" depends="gen">
        <javac classpathref="axis.classpath" classpath="." srcdir="." destdir="."/>
    </target>
</project>
Avatar billede krukken Mester
15. januar 2005 - 00:23 #24
Undskyld - bygge med ant?
Avatar billede krukken Mester
15. januar 2005 - 00:25 #25
og hvad bruger du din build-xml til?

SKal jeg oprette et nyt spørgsmål - eller er det okay ay fortsætte tråden her, og give dig point bagefter?
Avatar billede krukken Mester
15. januar 2005 - 00:27 #26
Indtil videre har jeg bare kørt følgende i det bibliotek hvor "jar-filer" ligger:
java -classpath axis.jar;commons-logging.jar;log4j-1.2.8.jar;commons-discovery.jar;wsdl4j.jar;jaxrpc.jar;saaj.jar org.apache.axis.wsdl.WSDL2Java CVR.wsdl
Avatar billede arne_v Ekspert
15. januar 2005 - 10:06 #27
ant er "make for java" hvis du kender make

http://www.eksperten.dk/artikler/54

jeg vurderede at det var nemmere at få buildet de filer som bliver drysset ud
i en meget dyb directory struktur med ant
Avatar billede arne_v Ekspert
15. januar 2005 - 10:06 #28
Vi kan sagtens fortsætte her
Avatar billede arne_v Ekspert
15. januar 2005 - 10:06 #29
Og principielt kan du lave det samme med en build.bat
Avatar billede krukken Mester
16. januar 2005 - 14:20 #30
Jeg har prøvet at skrive "ant compile" men det virker ikke
Avatar billede arne_v Ekspert
16. januar 2005 - 16:12 #31
Der er ikke noget compile target så ...

Bare:

ant

burde være nok !
Avatar billede krukken Mester
16. januar 2005 - 17:02 #32
Jeg får denne fejl:
D:\Skole\Forskellige projekter\WSDL2Java>ant
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\j2re1.4
.2_05\lib\tools.jar
Buildfile: build.xml

D:\Skole\Forskellige projekter\WSDL2Java\build.xml:12: Unable to find a javac co
mpiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK
Avatar billede arne_v Ekspert
16. januar 2005 - 17:28 #33
Prøv lige og sæt environment variable JAVA_HOME til at pege på root af din JDK.
Avatar billede arne_v Ekspert
16. januar 2005 - 17:28 #34
Hos mig:

set JAVA_HOME=C:\SUNJava\j2sdk1.4.1_01

(men din ligger sikkert et andet sted)
Avatar billede krukken Mester
17. januar 2005 - 09:46 #35
D:\Skole\Forskellige projekter\WSDL2Java>ant
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\j2re1.4
.2_05\lib\tools.jar
Buildfile: build.xml

BUILD FAILED
D:\Skole\Forskellige projekter\WSDL2Java\build.xml:7: D:\jakarta\axis-1_2RC2\lib
not found.

Total time: 0 seconds
D:\Skole\Forskellige projekter\WSDL2Java>
Avatar billede krukken Mester
17. januar 2005 - 09:57 #36
I build-filen skal følgende vel sættes lig med:
axis.classpath: Det bibliotek som alle jar-filer fra axis ligger.
/jakarta/axis-1_2RC2/lib:??
Avatar billede arne_v Ekspert
17. januar 2005 - 09:59 #37
JAVA_HOME skal pege på en JDK ikke på en JRE

dir %JAVA_HOME%\lib\tools.jar

skal finde noget
Avatar billede arne_v Ekspert
17. januar 2005 - 09:59 #38
Ja stien til Axis skal også rettes til.
Avatar billede krukken Mester
17. januar 2005 - 10:00 #39
Hvad er det for en tools.jar??
Avatar billede krukken Mester
17. januar 2005 - 10:02 #40
JAVA_HOME=C:\j2sdk1.4.2_05\bin??
Avatar billede krukken Mester
17. januar 2005 - 10:03 #41
dir %JAVA_HOME%\lib\tools.jar

Hvad betyder det - og hvor skal det stå?
Avatar billede arne_v Ekspert
17. januar 2005 - 10:07 #42
JAVA_HOME=C:\j2sdk1.4.2_05\bin

ser rigtig ud

dir %JAVA_HOME%\lib\tools.jar

er en kommando som du kan fyre af i en DOS box

tools.jar indeholder java compileren
Avatar billede krukken Mester
17. januar 2005 - 22:28 #43
dir %JAVA_HOME%\lib\tools.jar - virker ikke.

tools.jar - er det en del at ant, java eller axis?
Avatar billede arne_v Ekspert
17. januar 2005 - 22:30 #44
Det er en del af Java.
Avatar billede arne_v Ekspert
17. januar 2005 - 22:30 #45
Hvad med:

dir C:\j2sdk1.4.2_05\lib\tools.jar
Avatar billede arne_v Ekspert
17. januar 2005 - 22:31 #46
Hos nu kan jeg se det !

Ikke:

JAVA_HOME=C:\j2sdk1.4.2_05\bin

Men:

JAVA_HOME=C:\j2sdk1.4.2_05
Avatar billede krukken Mester
17. januar 2005 - 22:33 #47
Det hjalp:-)

Så er det kun den sidste fejl:
Buildfile: build.xml

BUILD FAILED
D:\Skole\Forskellige projekter\WSDL2Java\build.xml:7: D:\jakarta\axis-1_2RC2\lib
not found.

Total time: 0 seconds
D:\Skole\Forskellige projekter\WSDL2Java>
Avatar billede arne_v Ekspert
17. januar 2005 - 22:36 #48
Har du hentet og udpakket Axis 1.2RC2 ?

Og rettet stien i build.xml ?
Avatar billede krukken Mester
17. januar 2005 - 22:44 #49
Min buildfil ser ud på denne måde:
<project name="cvrtest" default="build">
    <path id="D:\Skole\Forskellige projekter\WSDL2Java">
        <fileset dir="D:\Programmer\axis-1_2RC2\lib">
            <include name="**/*.jar"/>
        </fileset>
    </path>
    <taskdef resource="axis-tasks.properties" classpathref="D:\Skole\Forskellige projekter\WSDL2Java"/>
    <target name="gen">
        <axis-wsdl2java output="." url="http://cvr.dk/CVR.wsdl"/>
    </target>
    <target name="build" depends="gen">
        <javac classpathref="C:\j2sdk1.4.2_05\bin" classpath="." srcdir="." destdir="."/>
    </target>
</project>
Avatar billede krukken Mester
17. januar 2005 - 22:44 #50
Og jeg får følgende fejl:
build:
    [javac] Compiling 81 source files to D:\Skole\Forskellige projekter\WSDL2Jav
a

BUILD FAILED
D:\Skole\Forskellige projekter\WSDL2Java\build.xml:12: Reference C:\j2sdk1.4.2_0
5\bin not found.

Total time: 7 seconds
Avatar billede arne_v Ekspert
17. januar 2005 - 22:48 #51
Prøv:

<project name="cvrtest" default="build">
    <path id="all.axis.jars">
        <fileset dir="D:\Programmer\axis-1_2RC2\lib">
            <include name="**/*.jar"/>
        </fileset>
    </path>
    <taskdef resource="axis-tasks.properties" classpathref="all.axis.jars"/>
    <target name="gen">
        <axis-wsdl2java output="." url="http://cvr.dk/CVR.wsdl"/>
    </target>
    <target name="build" depends="gen">
        <javac classpathref="all.axis.jars" classpath="." srcdir="." destdir="."/>
    </target>
</project>
Avatar billede krukken Mester
17. januar 2005 - 22:52 #52
Nu står der: Build succed:-)

Men det komme en lille fejl: [axis-wsdl2java] - Unable to find required classes (javax.activation.DataHandler
and javax.mail.internet.MimeMultipart). Attachment support is disabled.

Er det noget jeg skal tage mig af?
Avatar billede arne_v Ekspert
17. januar 2005 - 22:54 #53
Ikke nødvendigvis.

Elleks skal du downloade javamail og jaf.
Avatar billede krukken Mester
17. januar 2005 - 22:55 #54
Er det noget som får nogen betydning?

Hvilke jar-filer fra hvad skal jeg så have med i projektet?
Avatar billede arne_v Ekspert
17. januar 2005 - 22:57 #55
ved jeg ikke - jeg tror det ikke

mail.jar og activation.jar
Avatar billede krukken Mester
17. januar 2005 - 22:59 #56
okay - nu virker det sku. Jeg kan kompilere projektet:-)
Avatar billede arne_v Ekspert
17. januar 2005 - 23:04 #57
Jeg kan iøvrigt varmt anbefale ant til den slags projekter
Avatar billede krukken Mester
18. januar 2005 - 12:47 #58
Når jeg opretter et objekt at selve webservicen bliver følgende exception kastet:
Exception in thread "main" java.lang.NoClassDefFoundError: org.apache.commons.lo
gging.LogFactory
        at org.apache.axis.components.logger.LogFactory.class$(LogFactory.java:4
5)
        at org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:45
)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory
.java:41)
        at org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java
:33)
        at org.apache.axis.handlers.BasicHandler.<clinit>(BasicHandler.java:43)
        at org.apache.axis.client.Service.getAxisClient(Service.java:104)
        at org.apache.axis.client.Service.<init>(Service.java:113)
        at cvrwebservice.CVRWebServiceLocator.<init>(CVRWebServiceLocator.java:1
2)
        at CVR.Events.Update.<init>(Update.java:33)
        at CVRFrame.<init>(CVRFrame.java:115)
        at CVR.main(CVR.java:5)
Avatar billede arne_v Ekspert
18. januar 2005 - 12:50 #59
client programmet skal også have nogen af alle Axis jar filerne i classpath ...
Avatar billede krukken Mester
18. januar 2005 - 12:52 #60
Det har den også - ligenu har den axis.jar og jaxrpc.jar - er der andre du kan anbefale?
Avatar billede arne_v Ekspert
18. januar 2005 - 12:55 #61
org.apache.commons.logging.LogFactory

er log4j så prøv med:

log4j-1.2.8.jar
Avatar billede arne_v Ekspert
18. januar 2005 - 12:56 #62
vrøvl den er ikke log4j men commons logging så:

commons-logging.jar
Avatar billede arne_v Ekspert
18. januar 2005 - 12:56 #63
men hvis commons logging vil bruge log4j så skal du også have log4j jar filen
Avatar billede krukken Mester
18. januar 2005 - 13:02 #64
Nu har jeg forsøgt at tilføje wsdl4j.jar og log4j-1.2.4.jar fra axis - men med samme resultat.
Avatar billede arne_v Ekspert
18. januar 2005 - 13:11 #65
tilføj også commons-logging.jar
Avatar billede arne_v Ekspert
18. januar 2005 - 22:10 #66
Virker det så nu ?
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