Win a copy of Testing JavaScript Applications this week in the HTML Pages with CSS and JavaScript forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Bear Bibeault
  • Ron McLeod
  • Jeanne Boyarsky
  • Paul Clapham
Sheriffs:
  • Tim Cooke
  • Liutauras Vilda
  • Junilu Lacar
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • fred rosenberger
  • salvin francis
Bartenders:
  • Piet Souris
  • Frits Walraven
  • Carey Brown

wsgen does not generate correct schema bindings and wsdl file

 
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi All,

I am trying to build a WebSphere JAX-WS web service using the botton up approach.
I have provided all the necessary annotation in the SEI with a targetNameSpace="ws.dm.mycomp.com" as below

@WebService(serviceName="DecisionControllerWS", name="DecisionControllerWS", targetNamespace="ws.dm.mycomp.com")

The helper classes used by the web service use other classes which are in different packages and are bundled in a jar file and available on the classpath.
I use the "com.sun.tools.ws.ant.WsGen" wsgen ant task to generate the WS artifacts. The problem is that the wsgen only generates the schema bindings for the namespace which I provided in the annotations. It does not generate the schema bindings for the other packages and eventually they are not referred at all in the WSDL file.


Below is the snippet for the WSDL generated by the wsgen ant task

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><definitions targetNamespace="http://dm.mycomp.com"; name="DecisionControllerWS" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:tns="http://dm.mycomp.com"; xmlns="http://schemas.xmlsoap.org/wsdl/">; <types> <xsd:schema> <xsd:import namespace="ws.dm.mycomp.com" schemaLocation="DecisionControllerWS_schema1.xsd"/> </xsd:schema> <xsd:schema> <xsd:import namespace="http://dm.mycomp.com"; schemaLocation="DecisionControllerWS_schema2.xsd"/> </xsd:schema> </types>........

Snippet of "DecisionControllerWS_schema1.xsd"

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><xs:schema version="1.0" targetNamespace="ws.dm.mycomp.com" xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:tns="ws.dm.mycomp.com" xmlns:ns1="http://dm.mycomp.com">;
<xs:import namespace="http://dm.mycomp.com"; schemaLocation="DecisionControllerWS_schema2.xsd"/>

Snippet of "DecisionControllerWS_schema2.xsd"

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><xs:schema version="1.0" targetNamespace="ws.dm.mycomp.com" xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:tns="ws.dm.mycomp.com" xmlns:ns1="http://dm.mycomp.com">; <xs:import namespace="http://dm.mycomp.com"; schemaLocation="DecisionControllerWS_schema2.xsd"/>.......

Question #1. Why The wsgen task has created 2 schema binding files with one namespace as "http://dm.mycomp.com"; which I have not specified anywhere?

Question #2. What am I doing wrong with the wsgen task because of which it is not generating the schema bindings for all the required packages?

Some More Information:

This behavior is quite different to what I observe when I run the IBM WSDK Bean2WebService command line tool provided with RAD 7.0. The WSDL generated there has the schema bindings for all the packages and structures.

Below is a snippet of the WSDL generated by Bean2WebService command line tool

<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions targetNamespace="http://ws.dm.mycomp.com"; xmlns:impl="http://ws.dm.mycomp.com"; xmlns:intf="http://ws.dm.mycomp.com"; xmlns:tns2="http://exception.ws.dm.mycomp.com"; xmlns:tns3="http://bean.ra.dm.mycomp2.com"; xmlns:tns4="http://sds.ra.dm.mycomp2.com"; xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"; xmlns:xsd="http://www.w3.org/2001/XMLSchema">; <wsdl:types> <schema targetNamespace="http://ws.dm.mycomp.com"; xmlns="http://www.w3.org/2001/XMLSchema"; xmlns:tns3="http://bean.ra.dm.mycomp2.com"; xmlns:tns4="http://sds.ra.dm.mycomp2.com"; xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema">; <import namespace="http://sds.ra.dm.mycomp2.com"/>; <import namespace="http://bean.ra.dm.mycomp2.com"/>....

I have also run the weblogic jwsc ant task on the same SEI and it generates huge number of schema binding files and the generated WSDL has references to all the user defined types with the package name as the namespace.

The incorrect WSDL has an impact when I generate the client artifacts using "wsimport" ant task. The client classes are generated in the "com.mycomp.dm" package which is not the same as their actual package.

Please help me if there something wrong that I am doing and how can I get the correct WSDL generated with wsgen ant task.

Thanks
 
We've gotta get close enough to that helmet to pull the choke on it's engine and flood his mind! Or, we could just read this tiny ad:
Thread Boost feature
https://coderanch.com/t/674455/Thread-Boost-feature
    Bookmark Topic Watch Topic
  • New Topic