• 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 Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Tim Cooke
  • paul wheaton
  • Jeanne Boyarsky
  • Ron McLeod
Sheriffs:
  • Paul Clapham
  • Liutauras Vilda
  • Devaka Cooray
Saloon Keepers:
  • Tim Holloway
  • Roland Mueller
Bartenders:

wsgen does not generate correct schema bindings and wsdl file

 
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • 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
 
Can't .... do .... plaid .... So I did this tiny ad instead:
Smokeless wood heat with a rocket mass heater
https://woodheat.net
reply
    Bookmark Topic Watch Topic
  • New Topic