Servicegen WLS 7.0
Hi
i have created a complex holder class according the instructions in the 7.0 Documentation
to get more than one returnvalue from a webservice.
After calling the servicegen task i always get the error "Could not copy class file
to working war".
Does anybody knows what this means ?
Thank you for your help !
You can do the servicegen first and replace the web-service.xml file
that it generates by your own web-service.xml file (with customized
ser/deser). web-services.xml file will be inside the war file.
regards,
-manoj
"Gary Chan" <[email protected]> wrote in message
news:[email protected]..
>
I have try to build my application by using Servicegen with attributegenerateTypes="False"
in service element, but it cannot find the type-mapping. Where should myweb-service.xml
locate in order to let servicegen can find this file.
Moreover, I also try to using typeMappingFile as an attribute of serviceelement
in Servicegen. However, it shows that typeMappingFile is not a validattribute.
>
It's so urgent! Pls reply my questions as soon as possible.
Thank you very much!
"manoj cheenath" <[email protected]> wrote:
This does not seems to be a problem with holder class. Can you
pls run ant in verbose mode (ant -verbose ...)? I suspect this
could be something to do with ant.
regards,
-manoj
"Markus Gasser" <[email protected]> wrote in message
news:3cf25855$[email protected]..
Hi
i have created a complex holder class according the instructions in the7.0 Documentation
to get more than one returnvalue from a webservice.
After calling the servicegen task i always get the error "Could not
copy
class file
to working war".
Does anybody knows what this means ?
Thank you for your help !
Similar Messages
-
Servicegen - Issue with Variable Names - WLS 8.1
Hi Experts
I am trying to expose an EJB as a Webservice.. I assembled the ear using SERVICEGEN exposed by Weblogic 8.1
To my dismay the generated WSDL (even the web-services.xml) are not having the variable names which I gave in my webservice method. Instead I get String, String0, String1 and so on...
Kindly help me get over this problem.
Thanks and Regards,
Gopal.your application miight not be using this libraries but there are many shared libraries which are configured could be using. please check whether config.xml file of your domain contains the entries for this library.Problem running simple portal tutorial question
-
Problem with servicegen and how to convert java classes to webservices
I am a beginner and am trying to convert all my java code into webservices,I have
a java class Test.java and number of other third party libraries and my own java
files that are reffered in Test.java. I want to expose the public methods in Test.java
as webservices.
the serivegen part of My build.xml is as below
<servicegen
destEar="${APPLICATIONS}/${ear_file}"
warName="${war_file}">
<service
javaClassComponents="com.verizon.Test"
targetNamespace="${namespace}"
serviceName="Test"
serviceURI="/Test"
generateTypes="True"
expandMethods="True">
</service>
<classpath>
<pathelement path="${build}"/>
<pathelement path="${java.class.path}"/>
</classpath>
</servicegen>
When i run ant it complains:
[servicegen] weblogic.xml.schema.binding.BindingException: Invalid class received:
interface org.apache.crimson.tree.ElementFactory loaded from file:/apps/opt/crimson.jar!/org/apache/crimson/tree/ElementFactory.class.
All classes that will be serialized or deserialized must be non-interface, non-abstract
classes that provide a public default constructor
I have no clue,Why is Servicegen introspecting the third party class file also?I
just need the public methods in Test.java exposed and Test.java will just use
the third party library.
also,is there a way to tell servicegen to include all these java files X,Y,Z to
the war file/ear files but expose only the public methods of X in the WSDL.
Please help
thanks
SureshHi Bruce,
Thanks very much for the insight u provided.Yes one of my public methods was returning
a element factory.
But let me ask my question this way:
Is there a way to tell servicegen to take only the specified public methods in
a class to make them as webservices?
by default servicegen is taking all the public methods..,i workaround i found
is to deploy the webservice manually by writing the web-services.xml to include
only the required public methods.
thanks
Suresh
Bruce Stephens <[email protected]> wrote:
Hi Suresh,
Does your Test.java have a public method that returns the element
factory of an XML document, like "public ElementFactory
getElementFactory ();" or such?
If so, you may want to check out the supported build-in and non-built-in
data types:
http://edocs.bea.com/wls/docs81/webserv/assemble.html#1060696
Concerning your last question, you can use the excludeEJBs, includeEJBs
(in combination with the ejbJar attribute) to specify which non-built-in
data type components should be generated. Or if you use the
javaClassComponents then simply use a comma separated list of class
names.
Hope this helps,
Bruce
suresh wrote:
I am a beginner and am trying to convert all my java code into webservices,Ihave
a java class Test.java and number of other third party libraries andmy own java
files that are reffered in Test.java. I want to expose the public methodsin Test.java
as webservices.
the serivegen part of My build.xml is as below
<servicegen
destEar="${APPLICATIONS}/${ear_file}"
warName="${war_file}">
<service
javaClassComponents="com.verizon.Test"
targetNamespace="${namespace}"
serviceName="Test"
serviceURI="/Test"
generateTypes="True"
expandMethods="True">
</service>
<classpath>
<pathelement path="${build}"/>
<pathelement path="${java.class.path}"/>
</classpath>
</servicegen>
When i run ant it complains:
[servicegen] weblogic.xml.schema.binding.BindingException: Invalidclass received:
interface org.apache.crimson.tree.ElementFactory loaded from file:/apps/opt/crimson.jar!/org/apache/crimson/tree/ElementFactory.class.
All classes that will be serialized or deserialized must be non-interface,non-abstract
classes that provide a public default constructor
I have no clue,Why is Servicegen introspecting the third party classfile also?I
just need the public methods in Test.java exposed and Test.java willjust use
the third party library.
also,is there a way to tell servicegen to include all these java filesX,Y,Z to
the war file/ear files but expose only the public methods of X in theWSDL.
Please help
thanks
Suresh -
Using updated tools with WLS 8.1 SP3
I'm attempting to take advantage of some ant 1.6 features. However, it appears that the ant XML parsers are getting in the way of the embedded WLS xml parsers:
[servicegen] java.lang.ClassCastException
[servicegen] at weblogic.apache.xerces.parsers.SAXParser.<init>(SAXParser.java:140)
[servicegen] at weblogic.apache.xerces.parsers.SAXParser.<init>(SAXParser.java:125)
[servicegen] at weblogic.apache.xerces.jaxp.SAXParserImpl.<init>(SAXParserImpl.java:102)
[servicegen] at weblogic.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParserImpl(SAXParserFactoryImpl.java:112)
[servicegen] at weblogic.apache.xerces.jaxp.SAXParserFactoryImpl.setFeature(SAXParserFactoryImpl.java:140)
[servicegen] at weblogic.xml.jaxp.WebLogicSAXParserFactory.setFeature(WebLogicSAXParserFactory.java:56)
[servicegen] weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Cannot invoke boolean constructor of processor ] - with nested exception:
[servicegen] [java.lang.reflect.InvocationTargetException - with target exception:
[servicegen] [weblogic.utils.AssertionError: ***** ASSERTION FAILED ***** - with nested exception:
[servicegen] [java.lang.ClassCastException]]]
Based on some research this appears to be an issue with WLS getting a parser that it cannot handle. Given that the version of ant included with 8.1sp3 is pretty old, is there a way to use newer versions? I'm giving up for now on macrodef's but would, as a general statement, like to keep up with new tools as they become available. I'd like to not be dependent on turning a battleship to incorporate 15 months of development work (the time between now and the release of ant 1.5.3 as included with 8.1sp3).
Thanks for any information.Had some problems like this before. Even thought I cannot offer specific advice as to how to fix this. If you do this, it could help.
Encountered a problem in eclipse while using WLS servicegen ANT task and, of course, the optional FTP task. I am using Eclipse Version: 3.0.0 Build id: 200406192000. With this comes ANT 1.6.1 standard. In order to get servicegen ANT task working I had to include the weblogic.jar in the ANT Classpath. Ofcourse this had another side effect, the FTP task that used to work earlier quit working. I still havent figured out the root cause of the problem but inorder to get around I did the following. To fix this, I added a new Task called FTP, I picked the c:\....\lib\ant-commons-net.jar in the location. The name I retained it as ftp. In the left page, I nagivated down to the lead of the tree [root]/->org->apache->...->net and in the right pane, I chose FTP. After this step when I ran I ran into an odd error Buildfile: C:\Work\JSSE-EJB.xml BUILD FAILED: java.lang.NoClassDefFoundError: com/oroinc/net/ftp/FTP Total time: 78 milliseconds I was under the impression that this is a legacy component and that the new version of the net component has org.apache....FTP structure. I am really not sure where, but to fix the issue, I had to get the NetComponents.jar from http://www.savarese.org/downloads/NetComponents/ and included it in the classpath. After this step, presto, servicegen task works fine with FTP task. However, I cannot imagine doing this for all the optional tasks. But for now there is a winding work around. -
Servicegen issue with binding webservice.jar
Hey, I am trying to build a ejb webservice using ant and servicegen. When I run it, it blows up and gives me a ton of binding errors. The problem is the binding errors are on files from the webservices.jar not from my jar. What is wrong with my script?
Script:
<project name="HEOOrdersService" default="build" basedir=".">
<!-- Load the standard properties -->
<loadproperties srcfile="${user.home}/ant_build.properties" />
<!-- Define the project classpath -->
<path id="classpath">
<pathelement location="${bin}" />
<pathelement location="${env10.dev.lib}/epicentric.jar" /> <!-- Example: 'oracle_jdbc_8_1_6.zip' -->
<pathelement location="${env10.dev.lib}/hef.jar" />
<pathelement location="${env10.dev.lib}/weblogic.jar" />
<pathelement location="c:/bea/weblogic81/server/lib/webservices.jar" />
<pathelement location="${env10.dev.libext}/servlet.jar"/>
<pathelement location="${env10.dev.classes}"/> <!-- For un-jared class files on the app server -->
</path>
<!-- Jar and car file names for deployment -->
<property name="jar.file" value="heounsorders.jar" /> <!-- Example: 'mercytransc.car' -or- 'mercyrad.car' -->
<property name="namespace" value="http://www.bea.com/servers/wls70/samples/examples/webservices/basic/statelessSession"/>
<taskdef name="servicegen" classname="weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask">
<classpath path="c:/bea/weblogic81/server/lib/webservices.jar"/>
<classpath path="c:/bea/weblogic81/server/lib/weblogic.jar"/>
</taskdef>
<target name="clean"
description="Delete all of the compiled classes and documentation">
<delete dir="${bin}" />
<delete dir="${jar}" />
<delete dir="${car}" />
<delete dir="${doc}" />
</target>
<target name="init" depends="clean"
description="Create the build directory structures used by compile, package, and doc">
<mkdir dir="${bin}" />
<mkdir dir="${bin}/classes" />
<mkdir dir="${jar}" />
<mkdir dir="${car}" />
<mkdir dir="${doc}" />
</target>
<target name="compile" depends="init"
description="Compile the java code from ${src} into ${bin}">
<javac srcdir="${src}" destdir="${bin}/classes" >
<classpath refid="classpath" />
</javac>
</target>
<!-- Document when the libraries were created for versioning purposes -->
<target name="create-tstamp">
<tstamp>
<format property="build.time" pattern="yyyy-MM-dd HH:mm:ss" />
</tstamp>
</target>
<!-- Document which developer created the libraries -->
<target name="create-manifest" depends="create-tstamp">
<manifest file="${bin}/MANIFEST.MF">
<attribute name="Built-By" value="${developer.name}" />
<attribute name="Contact" value="${developer.contact}" />
<attribute name="Built-On" value="${build.time}" />
</manifest>
</target>
<target name="jar" depends="compile, create-manifest">
<delete dir="${car.work}" />
<mkdir dir="${car.work}" />
<copy todir="${car.work}">
<fileset dir="${bin}/classes" />
</copy>
<copy todir="${car.work}/META-INF">
<fileset dir="./xml" />
</copy>
<jar destfile="${car}/${jar.file}" manifest="${bin}/MANIFEST.MF">
<fileset dir="${car.work}" />
</jar>
<delete dir="${car.work}" />
</target>
<target name="build" depends="jar" >
<delete dir="build_dir" />
<mkdir dir="build_dir" />
<copy todir="build_dir" file="${car}/${jar.file}"/>
<servicegen
destEar="build_dir/heounsorders.ear"
warName="heounsorders.war"
contextURI="WebService">
<service
ejbJar="build_dir/heounsorders.jar"
targetNamespace="http://www.bea.com/webservices/basic/statelesSession"
serviceName="HEOOrdersService"
serviceURI="/HEOOrdersService"
generateTypes="True"
expandMethods="True" >
</service>
</servicegen>
</target>
</project>
Part of the resulting errors which are in the servicegen:
[servicegen] C:\Documents and Settings\e7nw1fu\Local Settings\Temp\web-services.war-136753285\WEB-INF\classes\com\mckesson\hcsp\heoo
rders\UnsignedOrdersResultCodec.java:37: package weblogic.xml.stream does not exist
[servicegen] new weblogic.xml.schema.binding.util.runtime.PropertyInfo(weblogic.xml.stream.ElementFactory.createXMLName("java:com.
mckesson.hcsp.heoorders","account",null),
[servicegen] ^
[servicegen] C:\Documents and Settings\e7nw1fu\Local Settings\Temp\web-services.war-136753285\WEB-INF\classes\com\mckesson\hcsp\heoo
rders\UnsignedOrdersResultCodec.java:38: package weblogic.xml.stream does not exist
[servicegen] weblogic.xml.stream.ElementFactory.createXMLName("http://ww
w.w3.org/2001/XMLSchema","string",null),
[servicegen] ^
[servicegen] C:\Documents and Settings\e7nw1fu\Local Settings\Temp\web-services.war-136753285\WEB-INF\classes\com\mckesson\hcsp\heoo
rders\UnsignedOrdersResultCodec.java:52: package weblogic.xml.schema.binding.util.runtime does not exist
[servicegen] new weblogic.xml.schema.binding.util.runtime.PropertyInfo(weblogic.xml.stream.ElementFactory.createXMLName("java:com.
mckesson.hcsp.heoorders","count",null),
[servicegen] ^
[servicegen] C:\Documents and Settings\e7nw1fu\Local Settings\Temp\web-services.war-136753285\WEB-INF\classes\com\mckesson\hcsp\heoo
rders\UnsignedOrdersResultCodec.java:52: package weblogic.xml.stream does not exist
[servicegen] new weblogic.xml.schema.binding.util.runtime.PropertyInfo(weblogic.xml.stream.ElementFactory.createXMLName("java:com.
mckesson.hcsp.heoorders","count",null),
[servicegen] ^
[servicegen] C:\Documents and Settings\e7nw1fu\Local Settings\Temp\web-services.war-136753285\WEB-INF\classes\com\mckesson\hcsp\heoo
rders\UnsignedOrdersResultCodec.java:53: package weblogic.xml.stream does not exist
[servicegen] weblogic.xml.stream.ElementFactory.createXMLName("http://ww
w.w3.org/2001/XMLSchema","int",null),
[servicegen] ^
[servicegen] C:\Documents and Settings\e7nw1fu\Local Settings\Temp\web-services.war-136753285\WEB-INF\classes\com\mckesson\hcsp\heoo
rders\UnsignedOrdersResultCodec.java:158: package weblogic.xml.schema.binding does not exist
[servicegen] return weblogic.xml.schema.binding.ModelGroupCompositor.SEQUENCE ;
[servicegen] ^
[servicegen] 57 errors
[servicegen] weblogic.xml.schema.binding.BindingException: ERROR: during code compilation - with nested exception:
[servicegen] [java.io.IOException: Compiler failed executable.exec]
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.mapComponent(ComponentAutoTyper.java:145)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.EJBAutoTyper.run(EJBAutoTyper.java:115)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.runAutoTyper(ServiceGenTask.java:377)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.generateService(ServiceGenTask.java:322)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.execute(ServiceGenTask.java:190)
[servicegen] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
[servicegen] at org.apache.tools.ant.Task.perform(Task.java:364)
[servicegen] at org.apache.tools.ant.Target.execute(Target.java:341)
[servicegen] at org.apache.tools.ant.Target.performTasks(Target.java:369)
[servicegen] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
[servicegen] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
[servicegen] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
[servicegen] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
[servicegen] at org.apache.tools.ant.Main.runBuild(Main.java:668)
[servicegen] at org.apache.tools.ant.Main.startAnt(Main.java:187)
[servicegen] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
[servicegen] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
[servicegen] Caused by: weblogic.xml.schema.binding.BindingException: ERROR: during code compilation - with nested exception:
[servicegen] [java.io.IOException: Compiler failed executable.exec]
[servicegen] at weblogic.xml.schema.binding.internal.codegen.Compiler.invoke_compiler(Compiler.java:572)
[servicegen] at weblogic.xml.schema.binding.internal.codegen.Compiler.compile(Compiler.java:169)
[servicegen] at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.mapClass(XSDTypeMappingBuilder.java:91)
[servicegen] at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.mapClass(XSDTypeMappingBuilder.java:104)
[servicegen] at weblogic.xml.schema.binding.internal.TypeMappingBuilderBase.addMapping(TypeMappingBuilderBase.java:180)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.addMapping(ComponentAutoTyper.java:88)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.mapComponent(ComponentAutoTyper.java:141)
[servicegen] ... 16 more
[servicegen] --- Nested Exception ---
[servicegen] java.io.IOException: Compiler failed executable.exec
[servicegen] at weblogic.utils.compiler.CompilerInvoker.compileMaybeExit(CompilerInvoker.java:470)
[servicegen] at weblogic.utils.compiler.CompilerInvoker.compile(CompilerInvoker.java:328)
[servicegen] at weblogic.xml.schema.binding.internal.codegen.Compiler.invoke_compiler(Compiler.java:566)
[servicegen] at weblogic.xml.schema.binding.internal.codegen.Compiler.compile(Compiler.java:169)
[servicegen] at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.mapClass(XSDTypeMappingBuilder.java:91)
[servicegen] at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.mapClass(XSDTypeMappingBuilder.java:104)
[servicegen] at weblogic.xml.schema.binding.internal.TypeMappingBuilderBase.addMapping(TypeMappingBuilderBase.java:180)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.addMapping(ComponentAutoTyper.java:88)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.mapComponent(ComponentAutoTyper.java:141)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.EJBAutoTyper.run(EJBAutoTyper.java:115)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.runAutoTyper(ServiceGenTask.java:377)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.generateService(ServiceGenTask.java:322)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.execute(ServiceGenTask.java:190)
[servicegen] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
[servicegen] at org.apache.tools.ant.Task.perform(Task.java:364)
[servicegen] at org.apache.tools.ant.Target.execute(Target.java:341)
[servicegen] at org.apache.tools.ant.Target.performTasks(Target.java:369)
[servicegen] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
[servicegen] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
[servicegen] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
[servicegen] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
[servicegen] at org.apache.tools.ant.Main.runBuild(Main.java:668)
[servicegen] at org.apache.tools.ant.Main.startAnt(Main.java:187)
[servicegen] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
[servicegen] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
[servicegen]
nested within:
[servicegen] weblogic.xml.schema.binding.BindingException: ERROR: during code compilation - with nested exception:
[servicegen] [java.io.IOException: Compiler failed executable.exec]
[servicegen] at weblogic.xml.schema.binding.internal.codegen.Compiler.invoke_compiler(Compiler.java:572)
[servicegen] at weblogic.xml.schema.binding.internal.codegen.Compiler.compile(Compiler.java:169)
[servicegen] at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.mapClass(XSDTypeMappingBuilder.java:91)
[servicegen] at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.mapClass(XSDTypeMappingBuilder.java:104)
[servicegen] at weblogic.xml.schema.binding.internal.TypeMappingBuilderBase.addMapping(TypeMappingBuilderBase.java:180)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.addMapping(ComponentAutoTyper.java:88)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.mapComponent(ComponentAutoTyper.java:141)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.EJBAutoTyper.run(EJBAutoTyper.java:115)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.runAutoTyper(ServiceGenTask.java:377)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.generateService(ServiceGenTask.java:322)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.execute(ServiceGenTask.java:190)
[servicegen] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
[servicegen] at org.apache.tools.ant.Task.perform(Task.java:364)
[servicegen] at org.apache.tools.ant.Target.execute(Target.java:341)
[servicegen] at org.apache.tools.ant.Target.performTasks(Target.java:369)
[servicegen] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
Please tell me why it is doing this.Hi Nag,
With little reference to Sir Walter Scott, it would be a very tangled
web we weave in an attempt to factor out the inter-relationships of
javax interfaces that are hindering your effort. All to say, we don't
currently support JSR 110 (javax.wsdl.*) and it is not on the near term
horizon.
Have you considered using autotype [1]?
Regards,
Bruce
[1]
http://edocs.bea.com/wls/docs81/webserv/anttasks.html#1080062
Nag wrote:
>
Hi,
Here is a very small program, for which i am facing the problem of getting the
types from the wsdl. It works fine, as standalone....You do not have to deploy
the code any where..just have weblogic.jar in the classpath. It does not work.
It works when weblogic.jar is not in the classpath..any help is GREATLY APPRECIATED...
java.wsdl.Types from the java.wsdl.Definition object and the schema in the types
is null ( when weblogic.jar is present in the
I am always getting null in the schema (
import javax.wsdl.Definition;
//import weblogic.soap.wsdl.binding.Definition;
import javax.wsdl.xml.WSDLReader;
import javax.wsdl.factory.WSDLFactory;
public class Test {
Definition definition = null;
public static void main(String args[] ) {
Test test = new Test();
test.parseWSDL(args[0]);
public void parseWSDL(String WSDLName)
try
WSDLFactory wsdlFactory = WSDLFactory.newInstance();
WSDLReader wsdlReader = wsdlFactory.newWSDLReader();
wsdlReader.setFeature("javax.wsdl.verbose",false);
wsdlReader.setFeature("javax.wsdl.importDocuments",true);
definition = wsdlReader.readWSDL(WSDLName);
System.out.println("-----------" + definition.getTypes() );
catch( Exception e ) {
System.out.println("Exception" + e ); }
Thank for your help.
Nag -
Servicegen issue with binding webservices.jar
Hey, I am trying to build a ejb webservice using ant and servicegen. When I run it, it blows up and gives me a ton of binding errors. The problem is the binding errors are on files from the webservices.jar not from my jar. What is wrong with my script?
Script:
<project name="HEOOrdersService" default="build" basedir=".">
<!-- Load the standard properties -->
<loadproperties srcfile="${user.home}/ant_build.properties" />
<!-- Define the project classpath -->
<path id="classpath">
<pathelement location="${bin}" />
<pathelement location="${env10.dev.lib}/epicentric.jar" /> <!-- Example: 'oracle_jdbc_8_1_6.zip' -->
<pathelement location="${env10.dev.lib}/hef.jar" />
<pathelement location="${env10.dev.lib}/weblogic.jar" />
<pathelement location="c:/bea/weblogic81/server/lib/webservices.jar" />
<pathelement location="${env10.dev.libext}/servlet.jar"/>
<pathelement location="${env10.dev.classes}"/> <!-- For un-jared class files on the app server -->
</path>
<!-- Jar and car file names for deployment -->
<property name="jar.file" value="heounsorders.jar" /> <!-- Example: 'mercytransc.car' -or- 'mercyrad.car' -->
<property name="namespace" value="http://www.bea.com/servers/wls70/samples/examples/webservices/basic/statelessSession"/>
<taskdef name="servicegen" classname="weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask">
<classpath path="c:/bea/weblogic81/server/lib/webservices.jar"/>
<classpath path="c:/bea/weblogic81/server/lib/weblogic.jar"/>
</taskdef>
<target name="clean"
description="Delete all of the compiled classes and documentation">
<delete dir="${bin}" />
<delete dir="${jar}" />
<delete dir="${car}" />
<delete dir="${doc}" />
</target>
<target name="init" depends="clean"
description="Create the build directory structures used by compile, package, and doc">
<mkdir dir="${bin}" />
<mkdir dir="${bin}/classes" />
<mkdir dir="${jar}" />
<mkdir dir="${car}" />
<mkdir dir="${doc}" />
</target>
<target name="compile" depends="init"
description="Compile the java code from ${src} into ${bin}">
<javac srcdir="${src}" destdir="${bin}/classes" >
<classpath refid="classpath" />
</javac>
</target>
<!-- Document when the libraries were created for versioning purposes -->
<target name="create-tstamp">
<tstamp>
<format property="build.time" pattern="yyyy-MM-dd HH:mm:ss" />
</tstamp>
</target>
<!-- Document which developer created the libraries -->
<target name="create-manifest" depends="create-tstamp">
<manifest file="${bin}/MANIFEST.MF">
<attribute name="Built-By" value="${developer.name}" />
<attribute name="Contact" value="${developer.contact}" />
<attribute name="Built-On" value="${build.time}" />
</manifest>
</target>
<target name="jar" depends="compile, create-manifest">
<delete dir="${car.work}" />
<mkdir dir="${car.work}" />
<copy todir="${car.work}">
<fileset dir="${bin}/classes" />
</copy>
<copy todir="${car.work}/META-INF">
<fileset dir="./xml" />
</copy>
<jar destfile="${car}/${jar.file}" manifest="${bin}/MANIFEST.MF">
<fileset dir="${car.work}" />
</jar>
<delete dir="${car.work}" />
</target>
<target name="build" depends="jar" >
<delete dir="build_dir" />
<mkdir dir="build_dir" />
<copy todir="build_dir" file="${car}/${jar.file}"/>
<servicegen
destEar="build_dir/heounsorders.ear"
warName="heounsorders.war"
contextURI="WebService">
<service
ejbJar="build_dir/heounsorders.jar"
targetNamespace="http://www.bea.com/webservices/basic/statelesSession"
serviceName="HEOOrdersService"
serviceURI="/HEOOrdersService"
generateTypes="True"
expandMethods="True" >
</service>
</servicegen>
</target>
</project>
Part of the resulting errors which are in the servicegen:
[servicegen] C:\Documents and Settings\e7nw1fu\Local Settings\Temp\web-services.war-136753285\WEB-INF\classes\com\mckesson\hcsp\heoo
rders\UnsignedOrdersResultCodec.java:37: package weblogic.xml.stream does not exist
[servicegen] new weblogic.xml.schema.binding.util.runtime.PropertyInfo(weblogic.xml.stream.ElementFactory.createXMLName("java:com.
mckesson.hcsp.heoorders","account",null),
[servicegen] ^
[servicegen] C:\Documents and Settings\e7nw1fu\Local Settings\Temp\web-services.war-136753285\WEB-INF\classes\com\mckesson\hcsp\heoo
rders\UnsignedOrdersResultCodec.java:38: package weblogic.xml.stream does not exist
[servicegen] weblogic.xml.stream.ElementFactory.createXMLName("http://ww
w.w3.org/2001/XMLSchema","string",null),
[servicegen] ^
[servicegen] C:\Documents and Settings\e7nw1fu\Local Settings\Temp\web-services.war-136753285\WEB-INF\classes\com\mckesson\hcsp\heoo
rders\UnsignedOrdersResultCodec.java:52: package weblogic.xml.schema.binding.util.runtime does not exist
[servicegen] new weblogic.xml.schema.binding.util.runtime.PropertyInfo(weblogic.xml.stream.ElementFactory.createXMLName("java:com.
mckesson.hcsp.heoorders","count",null),
[servicegen] ^
[servicegen] C:\Documents and Settings\e7nw1fu\Local Settings\Temp\web-services.war-136753285\WEB-INF\classes\com\mckesson\hcsp\heoo
rders\UnsignedOrdersResultCodec.java:52: package weblogic.xml.stream does not exist
[servicegen] new weblogic.xml.schema.binding.util.runtime.PropertyInfo(weblogic.xml.stream.ElementFactory.createXMLName("java:com.
mckesson.hcsp.heoorders","count",null),
[servicegen] ^
[servicegen] C:\Documents and Settings\e7nw1fu\Local Settings\Temp\web-services.war-136753285\WEB-INF\classes\com\mckesson\hcsp\heoo
rders\UnsignedOrdersResultCodec.java:53: package weblogic.xml.stream does not exist
[servicegen] weblogic.xml.stream.ElementFactory.createXMLName("http://ww
w.w3.org/2001/XMLSchema","int",null),
[servicegen] ^
[servicegen] C:\Documents and Settings\e7nw1fu\Local Settings\Temp\web-services.war-136753285\WEB-INF\classes\com\mckesson\hcsp\heoo
rders\UnsignedOrdersResultCodec.java:158: package weblogic.xml.schema.binding does not exist
[servicegen] return weblogic.xml.schema.binding.ModelGroupCompositor.SEQUENCE ;
[servicegen] ^
[servicegen] 57 errors
[servicegen] weblogic.xml.schema.binding.BindingException: ERROR: during code compilation - with nested exception:
[servicegen] [java.io.IOException: Compiler failed executable.exec]
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.mapComponent(ComponentAutoTyper.java:145)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.EJBAutoTyper.run(EJBAutoTyper.java:115)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.runAutoTyper(ServiceGenTask.java:377)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.generateService(ServiceGenTask.java:322)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.execute(ServiceGenTask.java:190)
[servicegen] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
[servicegen] at org.apache.tools.ant.Task.perform(Task.java:364)
[servicegen] at org.apache.tools.ant.Target.execute(Target.java:341)
[servicegen] at org.apache.tools.ant.Target.performTasks(Target.java:369)
[servicegen] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
[servicegen] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
[servicegen] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
[servicegen] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
[servicegen] at org.apache.tools.ant.Main.runBuild(Main.java:668)
[servicegen] at org.apache.tools.ant.Main.startAnt(Main.java:187)
[servicegen] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
[servicegen] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
[servicegen] Caused by: weblogic.xml.schema.binding.BindingException: ERROR: during code compilation - with nested exception:
[servicegen] [java.io.IOException: Compiler failed executable.exec]
[servicegen] at weblogic.xml.schema.binding.internal.codegen.Compiler.invoke_compiler(Compiler.java:572)
[servicegen] at weblogic.xml.schema.binding.internal.codegen.Compiler.compile(Compiler.java:169)
[servicegen] at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.mapClass(XSDTypeMappingBuilder.java:91)
[servicegen] at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.mapClass(XSDTypeMappingBuilder.java:104)
[servicegen] at weblogic.xml.schema.binding.internal.TypeMappingBuilderBase.addMapping(TypeMappingBuilderBase.java:180)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.addMapping(ComponentAutoTyper.java:88)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.mapComponent(ComponentAutoTyper.java:141)
[servicegen] ... 16 more
[servicegen] --- Nested Exception ---
[servicegen] java.io.IOException: Compiler failed executable.exec
[servicegen] at weblogic.utils.compiler.CompilerInvoker.compileMaybeExit(CompilerInvoker.java:470)
[servicegen] at weblogic.utils.compiler.CompilerInvoker.compile(CompilerInvoker.java:328)
[servicegen] at weblogic.xml.schema.binding.internal.codegen.Compiler.invoke_compiler(Compiler.java:566)
[servicegen] at weblogic.xml.schema.binding.internal.codegen.Compiler.compile(Compiler.java:169)
[servicegen] at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.mapClass(XSDTypeMappingBuilder.java:91)
[servicegen] at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.mapClass(XSDTypeMappingBuilder.java:104)
[servicegen] at weblogic.xml.schema.binding.internal.TypeMappingBuilderBase.addMapping(TypeMappingBuilderBase.java:180)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.addMapping(ComponentAutoTyper.java:88)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.mapComponent(ComponentAutoTyper.java:141)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.EJBAutoTyper.run(EJBAutoTyper.java:115)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.runAutoTyper(ServiceGenTask.java:377)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.generateService(ServiceGenTask.java:322)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.execute(ServiceGenTask.java:190)
[servicegen] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
[servicegen] at org.apache.tools.ant.Task.perform(Task.java:364)
[servicegen] at org.apache.tools.ant.Target.execute(Target.java:341)
[servicegen] at org.apache.tools.ant.Target.performTasks(Target.java:369)
[servicegen] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
[servicegen] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
[servicegen] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
[servicegen] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
[servicegen] at org.apache.tools.ant.Main.runBuild(Main.java:668)
[servicegen] at org.apache.tools.ant.Main.startAnt(Main.java:187)
[servicegen] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
[servicegen] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)
[servicegen]
nested within:
[servicegen] weblogic.xml.schema.binding.BindingException: ERROR: during code compilation - with nested exception:
[servicegen] [java.io.IOException: Compiler failed executable.exec]
[servicegen] at weblogic.xml.schema.binding.internal.codegen.Compiler.invoke_compiler(Compiler.java:572)
[servicegen] at weblogic.xml.schema.binding.internal.codegen.Compiler.compile(Compiler.java:169)
[servicegen] at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.mapClass(XSDTypeMappingBuilder.java:91)
[servicegen] at weblogic.xml.schema.binding.internal.XSDTypeMappingBuilder.mapClass(XSDTypeMappingBuilder.java:104)
[servicegen] at weblogic.xml.schema.binding.internal.TypeMappingBuilderBase.addMapping(TypeMappingBuilderBase.java:180)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.addMapping(ComponentAutoTyper.java:88)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.ComponentAutoTyper.mapComponent(ComponentAutoTyper.java:141)
[servicegen] at weblogic.ant.taskdefs.webservices.autotype.EJBAutoTyper.run(EJBAutoTyper.java:115)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.runAutoTyper(ServiceGenTask.java:377)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.generateService(ServiceGenTask.java:322)
[servicegen] at weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask.execute(ServiceGenTask.java:190)
[servicegen] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
[servicegen] at org.apache.tools.ant.Task.perform(Task.java:364)
[servicegen] at org.apache.tools.ant.Target.execute(Target.java:341)
[servicegen] at org.apache.tools.ant.Target.performTasks(Target.java:369)
[servicegen] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
Please tell me why it is doing this.Hi Nag,
With little reference to Sir Walter Scott, it would be a very tangled
web we weave in an attempt to factor out the inter-relationships of
javax interfaces that are hindering your effort. All to say, we don't
currently support JSR 110 (javax.wsdl.*) and it is not on the near term
horizon.
Have you considered using autotype [1]?
Regards,
Bruce
[1]
http://edocs.bea.com/wls/docs81/webserv/anttasks.html#1080062
Nag wrote:
>
Hi,
Here is a very small program, for which i am facing the problem of getting the
types from the wsdl. It works fine, as standalone....You do not have to deploy
the code any where..just have weblogic.jar in the classpath. It does not work.
It works when weblogic.jar is not in the classpath..any help is GREATLY APPRECIATED...
java.wsdl.Types from the java.wsdl.Definition object and the schema in the types
is null ( when weblogic.jar is present in the
I am always getting null in the schema (
import javax.wsdl.Definition;
//import weblogic.soap.wsdl.binding.Definition;
import javax.wsdl.xml.WSDLReader;
import javax.wsdl.factory.WSDLFactory;
public class Test {
Definition definition = null;
public static void main(String args[] ) {
Test test = new Test();
test.parseWSDL(args[0]);
public void parseWSDL(String WSDLName)
try
WSDLFactory wsdlFactory = WSDLFactory.newInstance();
WSDLReader wsdlReader = wsdlFactory.newWSDLReader();
wsdlReader.setFeature("javax.wsdl.verbose",false);
wsdlReader.setFeature("javax.wsdl.importDocuments",true);
definition = wsdlReader.readWSDL(WSDLName);
System.out.println("-----------" + definition.getTypes() );
catch( Exception e ) {
System.out.println("Exception" + e ); }
Thank for your help.
Nag -
[WLS 8.1.3] - Differences between WLS on XP & HP-UX?
We're getting AbstractMethodError errors in an application that was built using the WLS 8.1.3 libraries on XP. The errors aren't occurring when the same app is built using the WLS 8.1.3 libraries on HP-UX using the same code base. We've swapped the ear files around and the ear file that was built on XP gets errors on either the XP or the HP-UX WLS Server and the ear built on HP-UX runs fine on either OS. The application code base is CVS controlled and is the same on both XP and HP-UX. The build process uses both the weblogic clientgen and servicegen tasks. The same ant build script is used to create both ear files and the only "difference" we can spot is that the WLS installation on XP is using JDK 142_04 and the one on HP-UX is using JDK 142_03. They are both using the JDK that came with WLS and are both at ServicePackLevel="3" and PatchLevel="0".
Anyone got any ideas or had similar problems between the two platforms?
The stack trace of the error we're getting with the XP built ear is:
####<Oct 7, 2004 9:58:11 AM PDT> <Info> <EJB> <JEAGLEMXP> <lnppiServer> <ExecuteThread: '14' for queue: 'weblogic.kernel.Default'> <<anonymous>> <BEA1-00000FF4EB92EBACDA96> <BEA-010051> <EJB Exception occurred during invocation from home: [email protected] threw exception: java.lang.AbstractMethodError: weblogic.xml.schema.binding.BeanCodecBase.getCompositor()Lweblogic/xml/schema/binding/ModelGroupCompositor;
java.lang.AbstractMethodError: weblogic.xml.schema.binding.BeanCodecBase.getCompositor()Lweblogic/xml/schema/binding/ModelGroupCompositor;
at weblogic.xml.schema.binding.BeanCodecBase.gatherContents(BeanCodecBase.java:299)
at weblogic.xml.schema.binding.CodecBase.serializeFill(CodecBase.java:285)
at weblogic.xml.schema.binding.CodecBase.serialize_internal(CodecBase.java:222)
at weblogic.xml.schema.binding.CodecBase.serialize(CodecBase.java:181)
at weblogic.xml.schema.binding.RuntimeUtils.invoke_serializer(RuntimeUtils.java:188)
at weblogic.xml.schema.binding.RuntimeUtils.invoke_serializer(RuntimeUtils.java:174)
at weblogic.webservice.core.DefaultPart.invokeSerializer(DefaultPart.java:324)
at weblogic.webservice.core.DefaultPart.toXML(DefaultPart.java:297)
at weblogic.webservice.core.DefaultMessage.toXML(DefaultMessage.java:645)
at weblogic.webservice.core.ClientDispatcher.send(ClientDispatcher.java:206)
at weblogic.webservice.core.ClientDispatcher.dispatch(ClientDispatcher.java:143)
at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:457)
at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:443)
at weblogic.webservice.core.rpc.StubImpl._invoke(StubImpl.java:290)
at com.qwest.lnppi.portedTNservice.PortedTelephoneNumber_Stub.getPortedTelelphoneNumber(Unknown Source)
at com.qwest.lnppi.business.port.PortedTnBean.portedTnWS(Unknown Source)
at com.qwest.lnppi.business.port.PortedTnBean.portedTn(Unknown Source)
at com.qwest.lnppi.business.port.PortedTnEjb_rn88fn_EOImpl.portedTn(PortedTnEjb_rn88fn_EOImpl.java:98)
at com.qwest.lnppi.business.svc.GetCurrentServiceProviderSwitch.getCurrentServiceProviderSwitch(Unknown Source)
at com.qwest.lnppi.business.svc.LnppiServiceBean.getPortingOptions(Unknown Source)
at com.qwest.lnppi.business.svc.LnppiServiceEjb_tk1dpv_EOImpl.getPortingOptions(LnppiServiceEjb_tk1dpv_EOImpl.java:46)
at com.qwest.lnppi.web.lnppiTester.Tester.CallTheBean(Unknown Source)
at com.qwest.lnppi.web.lnppiTester.Tester.TestIt(Unknown Source)
at jsp_servlet.__tester._jspService(__tester.java:157)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:996)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)
at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:312)
at com.qwest.lnppi.web.lnppiTester.pgMgr.doTestIt(Unknown Source)
at com.qwest.lnppi.web.lnppiTester.pgMgr.service(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:996)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:419)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:315)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6452)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3661)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2630)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
>I am getting similar stuff using WebLogic 8.1.3 running on Windows XP with JDK1.4.1_03 or JDK1.4.2_05. Please let me know if you found a work-around. Thanks...
java.lang.AbstractMethodError: weblogic.xml.schema.binding.BeanCodecBase.getCompositor()Lweblogic/xml/schema/binding/ModelGroupCompositor;
at weblogic.xml.schema.binding.BeanCodecBase.writeElementContents(BeanCodecBase.java:389)
at weblogic.xml.schema.binding.BeanCodecBase.writeContents(BeanCodecBase.java:355)
at weblogic.xml.schema.binding.CodecBase.writeTypeAndContents(CodecBase.java:409)
at weblogic.xml.schema.binding.CodecBase.serializeLiteral(CodecBase.java:318)
at weblogic.xml.schema.binding.CodecBase.serialize_internal(CodecBase.java:232)
at weblogic.xml.schema.binding.CodecBase.serialize(CodecBase.java:178)
at weblogic.xml.schema.binding.RuntimeUtils.invoke_serializer(RuntimeUtils.java:188)
at weblogic.xml.schema.binding.RuntimeUtils.invoke_serializer(RuntimeUtils.java:174)
at weblogic.webservice.core.DefaultPart.invokeSerializer(DefaultPart.java:324)
at weblogic.webservice.core.DefaultPart.toXML(DefaultPart.java:297)
at weblogic.webservice.core.DefaultMessage.toXML(DefaultMessage.java:619)
at weblogic.webservice.core.ClientDispatcher.send(ClientDispatcher.java:206)
at weblogic.webservice.core.ClientDispatcher.dispatch(ClientDispatcher.java:143)
at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:444)
at weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:430)
at weblogic.webservice.core.rpc.StubImpl._invoke(StubImpl.java:270)
at com.adsk.cer.ejb.generated.DmpExtractorSoap_Stub.createJob(DmpExtractorSoap_Stub.java:33)
at com.adsk.cer.ejb.ErrorReportHandlerBean.callDmpInfoWebService(ErrorReportHandlerBean.java:282)
at com.adsk.cer.ejb.ErrorReportHandlerBean.onMessage(ErrorReportHandlerBean.java:56)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:382)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:316)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:281)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2596)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2516)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170) -
WLS 8.1.2 : unsupported encoding: 'UTF-8, UTF-16'
Hello,
We are porting a web service from WLS 7.0.4 to WLS 8.1.2.0.
It is a stateless session bean, we use "servicegen" to generate the WS deployment
descriptor and the client is PocketSoap 1.5
This web service worked fine with WLS 7.0.4, but with WLS 8.1.2.0, the server
can't build the HTTP response. It seems it doesn't understand the "Accept-Charset:
UTF-8, UTF-16" included in the HTTP request generated by PocketSOAP.
Is there some extra configuration parameter on the server since v8 to handle this,
or is it a regression ?
Here is the HTTP request :
===================
POST /ws-powertest/powertest HTTP/1.1
Host: diffool:82
Accept-Charset: UTF-8, UTF-16;q=0.8, iso-8859-1;q=0.8
Accept-Encoding: deflate, gzip
Content-Type: text/xml; charset=UTF-8
SOAPAction: ""
User-Agent: PocketSOAP/1.5.b1/PocketHTTP/1.1
Content-Length: 412
Authorization: Basic ZXJlbmF1ZDoxMjM0NTY3OA==
<S:Envelope
xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:a="http://www.bnpparibas.com/eqd/powertest"
xmlns:XS="http://www.w3.org/2001/XMLSchema"
xmlns:XI="http://www.w3.org/2001/XMLSchema-instance"><S:Body><a:getPositionAuthenticated
S:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><string XI:type="XS:string">IXOEURWLD</string></a:getPositionAuthenticated></S:Body></S:Envelope>
And the server-side stack trace :
=======================
java.lang.IllegalArgumentException: unsupported encoding: 'UTF-8, UTF-16': java.io.UnsupportedEncodingException:
UTF-8, UTF-16
at weblogic.servlet.internal.ServletResponseImpl.setEncoding(ServletResponseImpl.java:865)
at weblogic.servlet.internal.ServletResponseImpl.setHeader(ServletResponseImpl.java:674)
at weblogic.servlet.internal.ServletResponseImpl.setContentType(ServletResponseImpl.java:269)
at weblogic.webservice.binding.soap.HttpServerBinding.send(HttpServerBinding.java:131)
at weblogic.webservice.server.Dispatcher.dispatch(Dispatcher.java:105)
at weblogic.webservice.server.WebServiceManager.dispatch(WebServiceManager.java:98)
at weblogic.webservice.server.servlet.ServletSecurityHelper$3.run(ServletSecurityHelper.java:173)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:353)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)
at weblogic.webservice.server.servlet.ServletSecurityHelper.authenticatedPortInvoke(ServletSecurityHelper.java:170)
at weblogic.webservice.server.servlet.WebServiceServlet.serverSideInvoke(WebServiceServlet.java:302)
at weblogic.webservice.server.servlet.ServletBase.doPost(ServletBase.java:485)
at weblogic.webservice.server.servlet.WebServiceServlet.doPost(WebServiceServlet.java:268)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:971)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:402)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6350)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3635)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
thanx for your help,
Emmanuel.Hi Emmanuel,
Did you already try setting the -Dweblogic.webservice.i18n.charset Java system
property, on the command-line that starts the WLS instance, hosting the WebLogic
Web Service?
-Dweblogic.webservice.i18n.charset=utf-16
This sets the Accept-Charset for all WebLogic Web Services, so you probably want
to just set it in the web-services.xml, for powertest. I don't know what this
currently looks like, but you want to edit it (there is not servicegen option
to set it) to look something like:
<web-services>
<web-service
name="powertest"
targetNamespace="http://www.bnpparibas.com/eqd/powertest"
uri="/ws-powertest/powertest"
charset="UTF-16"
>
</web-service>
</web-services>
Refer to http://e-docs.bea.com/wls/docs81/webserv/i18n.html
HTH,
Mike Wooten
"Emmanuel Renaud" <[email protected]> wrote:
>
Hello,
We are porting a web service from WLS 7.0.4 to WLS 8.1.2.0.
It is a stateless session bean, we use "servicegen" to generate the WS
deployment
descriptor and the client is PocketSoap 1.5
This web service worked fine with WLS 7.0.4, but with WLS 8.1.2.0, the
server
can't build the HTTP response. It seems it doesn't understand the "Accept-Charset:
UTF-8, UTF-16" included in the HTTP request generated by PocketSOAP.
Is there some extra configuration parameter on the server since v8 to
handle this,
or is it a regression ?
Here is the HTTP request :
===================
POST /ws-powertest/powertest HTTP/1.1
Host: diffool:82
Accept-Charset: UTF-8, UTF-16;q=0.8, iso-8859-1;q=0.8
Accept-Encoding: deflate, gzip
SOAPAction: ""
User-Agent: PocketSOAP/1.5.b1/PocketHTTP/1.1
Content-Length: 412
Authorization: Basic ZXJlbmF1ZDoxMjM0NTY3OA==
<S:Envelope
xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:a="http://www.bnpparibas.com/eqd/powertest"
xmlns:XS="http://www.w3.org/2001/XMLSchema"
xmlns:XI="http://www.w3.org/2001/XMLSchema-instance"><S:Body><a:getPositionAuthenticated
S:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><string XI:type="XS:string">IXOEURWLD</string></a:getPositionAuthenticated></S:Body></S:Envelope>
And the server-side stack trace :
=======================
java.lang.IllegalArgumentException: unsupported encoding: 'UTF-8, UTF-16':
java.io.UnsupportedEncodingException:
UTF-8, UTF-16
at weblogic.servlet.internal.ServletResponseImpl.setEncoding(ServletResponseImpl.java:865)
at weblogic.servlet.internal.ServletResponseImpl.setHeader(ServletResponseImpl.java:674)
at weblogic.servlet.internal.ServletResponseImpl.setContentType(ServletResponseImpl.java:269)
at weblogic.webservice.binding.soap.HttpServerBinding.send(HttpServerBinding.java:131)
at weblogic.webservice.server.Dispatcher.dispatch(Dispatcher.java:105)
at weblogic.webservice.server.WebServiceManager.dispatch(WebServiceManager.java:98)
at weblogic.webservice.server.servlet.ServletSecurityHelper$3.run(ServletSecurityHelper.java:173)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:353)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)
at weblogic.webservice.server.servlet.ServletSecurityHelper.authenticatedPortInvoke(ServletSecurityHelper.java:170)
at weblogic.webservice.server.servlet.WebServiceServlet.serverSideInvoke(WebServiceServlet.java:302)
at weblogic.webservice.server.servlet.ServletBase.doPost(ServletBase.java:485)
at weblogic.webservice.server.servlet.WebServiceServlet.doPost(WebServiceServlet.java:268)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:971)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:402)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6350)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3635)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
thanx for your help,
Emmanuel. -
Re: servicegen classpath
HI Kevin,
Please make sure your webservice.jar is the same version as weblogic.jar. If
you still can't get it work, could please send me your EJB? and a full
stack trace can also be very helpful.
Thanks
-Neal
Can you post or send me personally following things..
"Kevin Jones" <[email protected]> wrote in message
news:[email protected]...
No,
and I'm not sure why it should. Surely all that's doing is adding my
environment CLASSPATH to the servicegen classpath. I don't have an
environment classpath set (setting the environment classpath is
generally regarded as being a bad idea),
Kevin Jones
Neal Yin wrote:
Please check if this works ...
<path id="class.path">
<pathelement path="${java.class.path}"/>
<pathelement location="${WL_HOME}/server/lib/webservices.jar"/>
<pathelement location="${WL_HOME}/server/lib/weblogic.jar"/>
</path>
Thanks
-Neal
"Kevin Jones" <[email protected]> wrote in message
news:[email protected]...
I'm using the servicegen ant task but I'm having trouble in getting it
to work if I don't have a global classpath environment variable set.
This is from the 'simple' sample with WLS 7.0
<path id="class.path">
<pathelement location="${WL_HOME}/server/lib/webservices.jar"/>
<pathelement location="${WL_HOME}/server/lib/weblogic.jar"/>
</path>
<target name="ear" depends="check, build-ejb">
<delete dir="${build}" />
<mkdir dir="${build}" />
<copy todir="${build}" file="${dist}/${ejbc_jar_file}"/>
<servicegen
destEar="${APPLICATIONS}/${ear_file}"
warName="${war_file}"
contextURI="webservice">
<classpath refid="class.path"/>
<service
ejbJar="${build}/${ejbc_jar_file}"
targetNamespace="http://www.bea.com/examples/Trader"
serviceName="TraderService"
serviceURI="/TraderService"
generateTypes="True"
expandMethods="True" >
<client
packageName="examples.webservices.complex.statelessSession"
clientJarName="${client_file}"
/>
</service>
</servicegen>
</target>
I've tried setting the classpath as a ref, as a string and as nested
elements. In all cases I get a ClassNotFoundException for
TopLevelDescriptorMBean.class (which is in weblogic.jar)
If I set my environment classpath to
classpath=c:\bea\weblogic700\server\lib\webservices.jar;c:\bea\weblogic700\s
erver\lib\weblogic.jar
then the task works fine.
The task is defined via a taskdef
Am I missing something obvious, or does the task simply not work
properly with a user defined classpath?
Kevin JonesI got this to work by defining the classpath in the taskdef.. ie
<taskdef name="servicegen" classname="weblogic.ant.taskdefs.webservices.servicegen.ServiceGenTask"
classpathref="project.classpath"/>
<servicegen
destEar="${build.dist}/${project.name}.ear"
warName="${project.name}.war">
<classpath refid="project.classpath"/>
<service
javaClassComponents="${webservice.sourceClasses}"
targetNamespace="${webservice.namespace}"
serviceName="${webservice.name}"
serviceURI="${webservice.uri}"
generateTypes="true"
expandMethods="false">
</service>
</servicegen>
"Alana" <[email protected]> wrote:
>
>
Hi all!
I also have the same problem... anything that i can do???
Thanks!!!!
"Dan Branley" <[email protected]> wrote:
Hey,
Was this problem ever resolved? I'm having the exact same problem as
Kevin -
ie, I'm having to put weblogic.jar and webservice.jar on my system classpath.
thanks,
Dan
"Neal Yin" <[email protected]> wrote:
HI Kevin,
Please make sure your webservice.jar is the same version as weblogic.jar.
If
you still can't get it work, could please send me your EJB? and afull
stack trace can also be very helpful.
Thanks
-Neal
Can you post or send me personally following things..
"Kevin Jones" <[email protected]> wrote in message
news:[email protected]...
No,
and I'm not sure why it should. Surely all that's doing is adding
my
environment CLASSPATH to the servicegen classpath. I don't have an
environment classpath set (setting the environment classpath is
generally regarded as being a bad idea),
Kevin Jones
Neal Yin wrote:
Please check if this works ...
<path id="class.path">
<pathelement path="${java.class.path}"/>
<pathelement location="${WL_HOME}/server/lib/webservices.jar"/>
<pathelement location="${WL_HOME}/server/lib/weblogic.jar"/>
</path>
Thanks
-Neal
"Kevin Jones" <[email protected]> wrote in message
news:[email protected]...
I'm using the servicegen ant task but I'm having trouble in getting
it
to work if I don't have a global classpath environment variable
set.
This is from the 'simple' sample with WLS 7.0
<path id="class.path">
<pathelement location="${WL_HOME}/server/lib/webservices.jar"/>
<pathelement location="${WL_HOME}/server/lib/weblogic.jar"/>
</path>
<target name="ear" depends="check, build-ejb">
<delete dir="${build}" />
<mkdir dir="${build}" />
<copy todir="${build}" file="${dist}/${ejbc_jar_file}"/>
<servicegen
destEar="${APPLICATIONS}/${ear_file}"
warName="${war_file}"
contextURI="webservice">
<classpath refid="class.path"/>
<service
ejbJar="${build}/${ejbc_jar_file}"
targetNamespace="http://www.bea.com/examples/Trader"
serviceName="TraderService"
serviceURI="/TraderService"
generateTypes="True"
expandMethods="True" >
<client
packageName="examples.webservices.complex.statelessSession"
clientJarName="${client_file}"
/>
</service>
</servicegen>
</target>
I've tried setting the classpath as a ref, as a string and as nested
elements. In all cases I get a ClassNotFoundException for
TopLevelDescriptorMBean.class (which is in weblogic.jar)
If I set my environment classpath to
classpath=c:\bea\weblogic700\server\lib\webservices.jar;c:\bea\weblogic700\s
erver\lib\weblogic.jar
then the task works fine.
The task is defined via a taskdef
Am I missing something obvious, or does the task simply not work
properly with a user defined classpath?
Kevin Jones -
I'm using the servicegen ant task but I'm having trouble in getting it
to work if I don't have a global classpath environment variable set.
This is from the 'simple' sample with WLS 7.0
<path id="class.path">
<pathelement location="${WL_HOME}/server/lib/webservices.jar"/>
<pathelement location="${WL_HOME}/server/lib/weblogic.jar"/>
</path>
<target name="ear" depends="check, build-ejb">
<delete dir="${build}" />
<mkdir dir="${build}" />
<copy todir="${build}" file="${dist}/${ejbc_jar_file}"/>
<servicegen
destEar="${APPLICATIONS}/${ear_file}"
warName="${war_file}"
contextURI="webservice">
<classpath refid="class.path"/>
<service
ejbJar="${build}/${ejbc_jar_file}"
targetNamespace="http://www.bea.com/examples/Trader"
serviceName="TraderService"
serviceURI="/TraderService"
generateTypes="True"
expandMethods="True" >
<client
packageName="examples.webservices.complex.statelessSession"
clientJarName="${client_file}"
/>
</service>
</servicegen>
</target>
I've tried setting the classpath as a ref, as a string and as nested
elements. In all cases I get a ClassNotFoundException for
TopLevelDescriptorMBean.class (which is in weblogic.jar)
If I set my environment classpath to
classpath=c:\bea\weblogic700\server\lib\webservices.jar;c:\bea\weblogic700\server\lib\weblogic.jar
then the task works fine.
The task is defined via a taskdef
Am I missing something obvious, or does the task simply not work
properly with a user defined classpath?
Kevin JonesNo,
and I'm not sure why it should. Surely all that's doing is adding my
environment CLASSPATH to the servicegen classpath. I don't have an
environment classpath set (setting the environment classpath is
generally regarded as being a bad idea),
Kevin Jones
Neal Yin wrote:
Please check if this works ...
<path id="class.path">
<pathelement path="${java.class.path}"/>
<pathelement location="${WL_HOME}/server/lib/webservices.jar"/>
<pathelement location="${WL_HOME}/server/lib/weblogic.jar"/>
</path>
Thanks
-Neal
"Kevin Jones" <[email protected]> wrote in message
news:[email protected]...
I'm using the servicegen ant task but I'm having trouble in getting it
to work if I don't have a global classpath environment variable set.
This is from the 'simple' sample with WLS 7.0
<path id="class.path">
<pathelement location="${WL_HOME}/server/lib/webservices.jar"/>
<pathelement location="${WL_HOME}/server/lib/weblogic.jar"/>
</path>
<target name="ear" depends="check, build-ejb">
<delete dir="${build}" />
<mkdir dir="${build}" />
<copy todir="${build}" file="${dist}/${ejbc_jar_file}"/>
<servicegen
destEar="${APPLICATIONS}/${ear_file}"
warName="${war_file}"
contextURI="webservice">
<classpath refid="class.path"/>
<service
ejbJar="${build}/${ejbc_jar_file}"
targetNamespace="http://www.bea.com/examples/Trader"
serviceName="TraderService"
serviceURI="/TraderService"
generateTypes="True"
expandMethods="True" >
<client
packageName="examples.webservices.complex.statelessSession"
clientJarName="${client_file}"
/>
</service>
</servicegen>
</target>
I've tried setting the classpath as a ref, as a string and as nested
elements. In all cases I get a ClassNotFoundException for
TopLevelDescriptorMBean.class (which is in weblogic.jar)
If I set my environment classpath to
classpath=c:\bea\weblogic700\server\lib\webservices.jar;c:\bea\weblogic700\s
erver\lib\weblogic.jar
then the task works fine.
The task is defined via a taskdef
Am I missing something obvious, or does the task simply not work
properly with a user defined classpath?
Kevin Jones -
Servicegen ant task in weblogic 10.3
Hi,
Could you please let me know , the werbservice related ant tasks from weblogic 8.1 (say servicegen)
are supported in weblogic 10.3 ?
I am in a process of migrating application from 8.1 to 10.3. For building the application I am using 'ant'.
Thanks,
Sajan CRApparently the ant tasks are no longer described on the oracle doc pages as they were on the bea pages.
http://download.oracle.com/docs/cd/E12840_01/wls/docs103/programming/overview.html#using_ant
"To view the documentation for a specific version of Ant, such as the version included with WebLogic Server, download the Ant zip file from http://archive.apache.org/dist/ant/binaries/ and extract the documentation." -
WLS 7.0.0.0 and clientgen from 7.0.0.1 & NoSuchFieldError
I am trying to run the following code on one of our dev servers that is
running WLS 7.0.0.0.
I generated the Web Service client code using clientgen on my local machine
using 7.0.0.1.
The code is below (I marked the line where it chokes).
// Setup the global JAX-RPC service factory
System.setProperty( "javax.xml.rpc.ServiceFactory",
"weblogic.webservice.core.rpc.ServiceFactoryImpl");
// Execute the Web Service
String reportName = "CustomerHasLicensed";
String[] arguments = new String[1];
try {
logger_.logInfo(CLASSNAME,METHOD,"in try block");
AuthHeader authHeader = new AuthHeader("ebase","ebase");
logger_.logInfo(CLASSNAME,METHOD,"created AuthHeader");
arguments[0] = "100";
SystemReports_Impl test = new SystemReports_Impl();
logger_.logInfo(CLASSNAME,METHOD,"Created impl");
SystemReportsSoap soap = test.getSystemReportsSoap();
logger_.logInfo(CLASSNAME,METHOD,"got soap");
// #### THIS IS WHERE IT CHOKES ####
Reports reports = soap.getReports(reportName, arguments,
authHeader);
logger_.logInfo(CLASSNAME,METHOD,"fired webservice");
String head = reports.getHead();
logger_.logInfo(CLASSNAME,METHOD,"got header");
String body = reports.getBody();
String foot = reports.getFoot();
logger_.logInfo(CLASSNAME,METHOD,"##### head:"+head+"
#####body:"+body+ " ####foot:"+foot);
catch (Exception e) {
logger_.logError(CLASSNAME,METHOD,e.toString());
throw new ProgramException(e);
catch (Throwable t) {
logger_.logError(CLASSNAME,METHOD,t.toString());
throw new ProgramException(t);
I get the following stack trace:
at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
tStubImpl.java:945)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:332)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:242)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(W
ebAppServletContext.java:5363)
at
weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
r.java:721)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:3043)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:2466)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
java.lang.NoSuchFieldError: elementQ
at
weblogic.webservice.xml.XMLNodeInputStream.open(XMLNodeInputStream.java:80)
at
weblogic.webservice.xml.XMLNodeInputStream.<init>(XMLNodeInputStream.java:48
at weblogic.webservice.xml.XMLNode.stream(XMLNode.java:141)
at weblogic.webservice.core.DefaultPart.toJava(DefaultPart.java:291)
at weblogic.webservice.core.DefaultMessage.toJava(DefaultMessage.java:359)
at
weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:465)
at
weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:359)
at weblogic.webservice.core.rpc.StubImpl._invoke(StubImpl.java:205)
Do I have to run this on WLS 7.0.0.1? My understanding was that 7.0.0.1
just included the WLS Platform stuff and Workshop.
Maybe there was a bug fix that I'm tripping on?
FYI, this works fine from the command line.
Thanks.
MikeWhen all else fails read the documentation ;) I'm assuming this is somehow
related to this. This just reinforces my decision to migrate from 6.1 to 7
sp1 (counting the days).
Mike
WebLogic Web Services Changes Between Versions 7.0 and 7.0.0.1
Version 7.0.0.1 of WebLogic Web services implements version 1.0 of the Java
API forn XML based RPC (JAX-RPC) specification. Version 7.0 of WebLogic Web
services implemented version 0.8.
Because of the different versions of JAX-RPC implemented between the two
versions of WebLogic Server, some features of WebLogic Web services have
changed between versions 7.0 and 7.0.0.1, as described in the following
sections.
Upgrading Web Services From 7.0 to 7.0.0.1
Because of the changes in WebLogic Web services between versions 7.0 and
7.0.0.1, you must upgrade all WebLogic Web services you created on version
7.0 so that they deploy correctly on version 7.0.0.1. You must also upgrade
your client applications that invoke the Web services.
The following procedure describes the steps you must follow to upgrade:
1.. Upgrade WebLogic Server from Version 7.0 to 7.0.0.1.
2.. Re-assemble your 7.0 Web service by re-running the servicegen Ant
task. Use the same build.xml file that you used in version 7.0 of WebLogic
Server.
3.. Regenerate the client JAR file by re-running the clientgen Ant task.
Either use the same build.xml file that you used in version 7.0 of WebLogic
Server, or add the new attributes listed in New Attributes of the clientgen
Ant Task.
4.. Update your Java client application that invokes your Web service by
making the JAX-RPC API changes described in Changed Names of Stubs Generated
by the clientgen Ant Task and JAX-RPC API Changes.
Refer to Assembling and Deploying WebLogic Web Services and Invoking Web
Services for detailed information about the servicegen and clientgen Ant
tasks and writing Java client applications that invoke Web services.
"Mike" <[email protected]> wrote in message
news:[email protected]...
I am trying to run the following code on one of our dev servers that is
running WLS 7.0.0.0.
I generated the Web Service client code using clientgen on my localmachine
using 7.0.0.1.
The code is below (I marked the line where it chokes).
// Setup the global JAX-RPC service factory
System.setProperty( "javax.xml.rpc.ServiceFactory",
"weblogic.webservice.core.rpc.ServiceFactoryImpl");
// Execute the Web Service
String reportName = "CustomerHasLicensed";
String[] arguments = new String[1];
try {
logger_.logInfo(CLASSNAME,METHOD,"in try block");
AuthHeader authHeader = new AuthHeader("ebase","ebase");
logger_.logInfo(CLASSNAME,METHOD,"created AuthHeader");
arguments[0] = "100";
SystemReports_Impl test = new SystemReports_Impl();
logger_.logInfo(CLASSNAME,METHOD,"Created impl");
SystemReportsSoap soap = test.getSystemReportsSoap();
logger_.logInfo(CLASSNAME,METHOD,"got soap");
// #### THIS IS WHERE IT CHOKES ####
Reports reports = soap.getReports(reportName, arguments,
authHeader);
logger_.logInfo(CLASSNAME,METHOD,"fired webservice");
String head = reports.getHead();
logger_.logInfo(CLASSNAME,METHOD,"got header");
String body = reports.getBody();
String foot = reports.getFoot();
logger_.logInfo(CLASSNAME,METHOD,"##### head:"+head+"
#####body:"+body+ " ####foot:"+foot);
catch (Exception e) {
logger_.logError(CLASSNAME,METHOD,e.toString());
throw new ProgramException(e);
catch (Throwable t) {
logger_.logError(CLASSNAME,METHOD,t.toString());
throw new ProgramException(t);
I get the following stack trace:
at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(Servle
tStubImpl.java:945)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:332)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:242)
at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(W
ebAppServletContext.java:5363)
at
weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManage
r.java:721)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:3043)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:2466)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:152)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:133)
java.lang.NoSuchFieldError: elementQ
at
weblogic.webservice.xml.XMLNodeInputStream.open(XMLNodeInputStream.java:80)
at
weblogic.webservice.xml.XMLNodeInputStream.<init>(XMLNodeInputStream.java:48
at weblogic.webservice.xml.XMLNode.stream(XMLNode.java:141)
at weblogic.webservice.core.DefaultPart.toJava(DefaultPart.java:291)
atweblogic.webservice.core.DefaultMessage.toJava(DefaultMessage.java:359)
at
weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:465)
at
weblogic.webservice.core.DefaultOperation.invoke(DefaultOperation.java:359)
at weblogic.webservice.core.rpc.StubImpl._invoke(StubImpl.java:205)
Do I have to run this on WLS 7.0.0.1? My understanding was that 7.0.0.1
just included the WLS Platform stuff and Workshop.
Maybe there was a bug fix that I'm tripping on?
FYI, this works fine from the command line.
Thanks.
Mike -
SOAP / Web Service clustering WLS 7.0.2
Hi there,
I'm looking for information on if and how WLS 7.0.2 is capable of
clustering Web Services. We created the Web Service like following:
- Created a stateless session bean first
- Created the web service with a servicegen ant task
I browsed through edocs.bea.com but
up to now with no success.
Any help is greatly appreciated.
Best regards,
Fabio
"Fabio Barone" <[email protected]> wrote:
>
>Hi there,
>
>I'm looking for information on if and how WLS 7.0.2 is capable of
>clustering Web Services. We created the Web Service like following:
>- Created a stateless session bean first
>- Created the web service with a servicegen ant task
>
>We need the clustering service for high availability, not
>for load balancing or session fail-over.
>
>Our IT dept. offered a hardware solution with CISCO load-balancers
>first (our preferred solution for high availability).
>However, the guys here are not able to configure the hardware properly,
>that's why we're looking for alternatives with the WLS cluster.
>
>I browsed through edocs.bea.com but
>up to now with no success.
>
>Any help is greatly appreciated.
>
>Best regards,
>Fabio
Fabio, your other alternative is through a group of Web servers configured identically
using Weblogic proxy plugins. WLS can also act as a load-balancing proxy to interface
with a Cluster. Search bea docs for Load-balancing Proxy.....
Good Luck
-
Servicegen and clientgen using WL 7.0
This is something strange ..
I have a backend SLSB which I tried to expose as a webservice using servicegen.
Got the Webservice working, have the wsdl, everything looked perfect untill i
tried to
generate the client stubs using clientgen. I used the useServerTypes = "true"
Clientgen failed, compiling XXXWebServicePort.java, saying it can not find one
of my class. I
looked in the /var/tmp/clientxxx/dir to find that it has all the non built in
class files and codec class files expect one class, which happened to be my superclass
from which all other classes extend.
It was then that I looked at the wsdl and found that it has no reference to my
superclass either.
Even more, I looked at the WEB_INF/classes of the war file and found that it has
all other classes except the superclass.
It is like this,
superclass a
b extends a
c, d, etc extend b.
classes b, c, d, etc exist but class a is not found anywhere....but the webservice
is working fine,
methods retrieve data from the database using classes b, c, d, etc.
where is my class a, why doesn't it exist in my wsdl ...or anywhere !!
how can i build my client stubs in this case...
am i missing some thing ..
any help is appreciated !
thanks,I dont have enough info to guess what is
going wrong. I would suggest you to contact
support with a test case.
Also you could try servicegen with
useServerTypes="false".
Regards,
-manoj
http://manojc.com
"S S" <[email protected]> wrote in message news:3f21c83f$[email protected]..
>
how can i build my client stubs in this case....
clientgen fails complaining the super class is not found while
compiling WebServicePort.java
your help is appreciated...
thanks,
"manoj cheenath" <[email protected]> wrote:
I think this is because WLS 7.0 flattens the
java inheritance hierarchy. WLS 8.1 does
map this to schema inheritance.
Regards,
-manoj
http://manojc.com
"S S" <[email protected]> wrote in message
news:3f21994c$[email protected]..
>>>
This is something strange ..
I have a backend SLSB which I tried to expose as a webservice usingservicegen.
Got the Webservice working, have the wsdl, everything looked perfectuntill i
tried to
generate the client stubs using clientgen. I used the useServerTypes=
"true"
Clientgen failed, compiling XXXWebServicePort.java, saying it cannot
find one
of my class. I
looked in the /var/tmp/clientxxx/dir to find that it has all the nonbuilt
in
class files and codec class files expect one class, which happenedto be
my superclass
from which all other classes extend.
It was then that I looked at the wsdl and found that it has no
reference
to my
superclass either.
Even more, I looked at the WEB_INF/classes of the war file and foundthat
it has
all other classes except the superclass.
It is like this,
superclass a
b extends a
c, d, etc extend b.
classes b, c, d, etc exist but class a is not found anywhere....butthe
webservice
is working fine,
methods retrieve data from the database using classes b, c, d, etc.
where is my class a, why doesn't it exist in my wsdl ...or anywhere!!
how can i build my client stubs in this case...
am i missing some thing ..
any help is appreciated !
thanks, -
Servicegen error: jdk5?
I'm using WLS 8.1 sp4 and I'm trying to use the servicegen ant task to create a webservice from a session bean. The problem seems to be with the parameter to my EJB method, if I use a string array, all is fine, if I try to use a hashmap, I get the following error:
[servicegen] weblogic.xml.schema.binding.BindingException: No default constructor was found for class java.util.AbstractMap loaded from file:/C:/Installations/bea/jdk142_05/jre/lib/rt.jar!/java/util/AbstractMap.class. All classes that will be serialized or deserialized must be non-interface, non-abstract classes that provide a public default constructor - with nested exception:
[servicegen] [java.lang.NoSuchMethodException: java.util.AbstractMap.<init>()]
Now from the form it looks almost like its looking for the JDK 5 version of hashmap, but I'm not using it, and was wondering if there was some way of resolving this?
tia
MikeMezmo,
I'am stuck with the same problem.
Could you explain how you solved this ?
Maybe you are looking for
-
Error in NetWeaver CE 7.1 Installation: Step importJavaDump with MSS 2005
After a dozen unsuccessful tries to install SAP NetWeaver CE 7.1 onto a Windows platform using the Microsoft SQL Server as the backed I could use help regarding this particular error. I receive the following error when I try to install the software w
-
Purchase and install Lightroom 6 for Mac
Can someone please tell me how to purchase and download the upgrade version of Lightroom 6 for a Mac. I do NOT want Lightroom CC! Adobe has gone to great lengths to make it extremely difficult to do this. They are really pushing CC. I found a page th
-
What would you do? Fix or upgrade?
The logic board on my August 2008 MBP just gave up the ghost. Apple says they'll fix it (and everything else that might be broken) for $310 and provide a 90 day warranty. Here is what I'm trying to decide. Over the three years of applecare I've had t
-
I have just purchased an iphoto4, as this will run on the OSX that I have. However, I do want to use the photo capability. my itunes is v6, so no probs there. However, just found out that i need iphoto 4.0.3 - this has been downloaded - but it states
-
IPhone 4 blutooth - waste of time!!
What was the point of putting blutooth on the iPhone 4 if all you can do with it is connect to a head set? Why could this not be the same as 99% of mobile phones whereby you can transfer files, music, photos etc - the Bluetooth on the iPhone is a gim