Avatar billede fredand Forsker
01. januar 2008 - 15:48 Der er 3 kommentarer og
1 løsning

Problems with class version and WebServices

Hello!

I'm trying to learn how webservices work with WebLogic 8.1.6.

I have manage to generate a service upon e Stateless EJB and also generate a client jar with these ant-tasks:

    <target name="nameswebservice_server" depends="taskdef" >
        <delete dir="/home/fredrik/Applications/Eclipse/EclipseIDEforJavaEEDevelopers/workspace/nameswebservices/temp" />
        <mkdir dir="/home/fredrik/Applications/Eclipse/EclipseIDEforJavaEEDevelopers/workspace/nameswebservices/temp" />
        <copy todir="/home/fredrik/Applications/Eclipse/EclipseIDEforJavaEEDevelopers/workspace/nameswebservices/temp" file="/home/fredrik/Applications/Eclipse/EclipseIDEforJavaEEDevelopers/workspace/nameswebservices/WebContent/WEB-INF/lib/namesejb.jar"/>
        <servicegen
          destEar="/home/fredrik/Applications/Eclipse/EclipseIDEforJavaEEDevelopers/workspace/nameswebservices/temp/nameswebservice.ear"
          warName="nameswebservice.war"
          contextURI="nameswebservice">
          <service
            ejbJar="/home/fredrik/Applications/Eclipse/EclipseIDEforJavaEEDevelopers/workspace/nameswebservices/temp/namesejb.jar"
            targetNamespace="http://localhost:7011/NamesWebService"
            serviceName="NamesWebService"
            serviceURI="/NamesWebService"
            generateTypes="True"
            expandMethods="True" >
          </service>
        </servicegen>
      </target>

      <target name="nameswebservice_client" depends="taskdef">
          <property name="wsdlUrl"
              value="http://localhost:7011/nameswebservice/NamesWebService?WSDL" />

              <clientgen wsdl="${wsdlUrl}" packageName="nameswebservice.client"
            clientJar="/home/fredrik/Applications/Eclipse/EclipseIDEforJavaEEDevelopers/workspace/nameswebapplication/WebContent/WEB-INF/lib/nameswebservice_client.jar" >
            <classpath>
                <pathelement path="/home/fredrik/Applications/bea/weblogic81/server/lib/weblogic.jar"/>
                <pathelement path="/home/fredrik/Applications/bea/weblogic81/server/lib/webservices.jar"/>
              </classpath>
              </clientgen>
        </target>

The service has no problem to be deployed on the server side.

But when I try to call the webservice I get:
...WEB-INF/classes/nameswebservice/client/NamesWebService_Impl.class
class file has wrong version 50.0, should be 48.0

I guess my generation (of at least the client) has in some way become version 1.5 but I just can run 1.4 in my weblogic.

I guess I need to convert my class files to 1.4, but I can not find any attribute to set in the ant tasks above that mange that.

So if any one got a clue of how to be able to generate everything for 1.4 please let me know!

Best regards
Fredrik
Avatar billede arne_v Ekspert
01. januar 2008 - 16:51 #1
Hmm. I prefer web service toolkits that generate Java source code, so it is possible
to compile and pack using javac and jar tasks.

I assume that you have both Java versions.

BTW, 50 is 1.6 (48 is 1.4).

So the question is where does ant look for the compiler.

First thing to try was to point JAVA_HOME to the 1.4.2 root.
Avatar billede fredand Forsker
01. januar 2008 - 20:41 #2
Hello!

I tried to set the JAVA_HOME and also retried to regenerate the client jar (also the server jar):

[fredrik@localhost nameswebapplication]$ echo $JAVA_HOME
/home/fredrik/Applications/Java/JavaSDK1_4_2_14/j2sdk1.4.2_14
[fredrik@localhost nameswebapplication]$ java -version
java version "1.4.2_14"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_14-b05)
Java HotSpot(TM) Client VM (build 1.4.2_14-b05, mixed mode)
[fredrik@localhost nameswebapplication]$ ant nameswebservice_client
Buildfile: build.xml

taskdef:

nameswebservice_client:
[clientgen] Generating client jar for http://localhost:7011/nameswebservice/NamesWebService?WSDL ...

BUILD SUCCESSFUL
Total time: 32 seconds 

But i still get the "class file has wrong version 50.0, should be 48.0"

I have not figure out why it still gets compiled for 1.6.

I guess the generate of the jar takes place outside weblogic, but if it is not then I see one strange thing in the weblogic output:

[JAM] Warning: You are running under a pre-1.5 JDK.  JSR175-style source annotations will not be available

To me this looks like 1.5 is involved somewhere any how. So if the clientjar is created with som help of the running server then perhaps I still get it as 1.5, but then of course it should be version 49 as you said.

Hmm, really tricky!

If you see any interesting please löet me know mate!
Best regards
Fredrik

BTW I also got this target in my build.xml but do not think it is of interest:
    <target name="taskdef">
        <taskdef name="wlappc" classname="weblogic.ant.taskdefs.j2ee.Appc" classpath="/home/fredrik/Applications/bea/weblogic81/server/lib/weblogic.jar"/>
        <taskdef name="servicegen" classname="weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask" classpath="/home/fredrik/Applications/bea/weblogic81/server/lib/weblogic.jar" />
        <taskdef name="clientgen" classname="weblogic.ant.taskdefs.webservices.clientgen.ClientGenTask" classpath="/home/fredrik/Applications/bea/weblogic81/server/lib/weblogic.jar:/home/fredrik/Applications/bea/weblogic81/server/lib/webserviceclient.jar" />
        <taskdef name="wsdl2service" classname="weblogic.ant.taskdefs.webservices.wsdl2service.WSDL2Service" classpath="/home/fredrik/Applications/bea/weblogic81/server/lib/weblogic.jar" />
    </target>
Avatar billede fredand Forsker
14. april 2008 - 21:39 #3
Hello!
Tha answer was as you said mate!
Wrong Java version!
Please give a svar so I can reward you!
Best regards!
Fredrik
Avatar billede arne_v Ekspert
15. april 2008 - 02:27 #4
ok
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