[jbossws-issues] [JBoss JIRA] Created: (JBWS-1390) Duplicate names in ejb 3.0 exposed web service generated wsdl

Sureshbabu Thyvalappil (JIRA) jira-events at jboss.com
Thu Nov 16 16:32:41 EST 2006


Duplicate names in ejb 3.0 exposed web service generated wsdl
-------------------------------------------------------------

                 Key: JBWS-1390
                 URL: http://jira.jboss.com/jira/browse/JBWS-1390
             Project: JBoss Web Services
          Issue Type: Bug
      Security Level: Public (Everyone can see)
    Affects Versions: jbossws-1.0.4
         Environment: JBOSS 4.0.4 GA patch1 installer with ejb3 option.  Exposed ejb 3.0 as web service.
            Reporter: Sureshbabu Thyvalappil


I've exposed a ejb 3.0 as a web service using annotations in JBOSS 4.0.4 patch1 with ejb 3.0. 
Look for SortingInfo definition in the wsdl which appears 2 times.
This is a real issue for us at this point.  SortingInfo which appears 2 times in wsdl is returned by getReport() method also included in ReportColumnsBean.

The ejb 3.0 class is as follows: 

@WebService (name="ReportServiceEndPoint",
  targetNamespace="http://tsa/services", serviceName="ReportService1")
@SOAPBinding (style=SOAPBinding.Style.RPC)
//@PortComponent(transportGuarantee="NONE",contextRoot="/ReportService1",urlPattern="/ReportService1")
@Stateless
//@HandlerChain(name = "ReportServiceEndPoint_handlerChain", file = "file://localhost/home/suresh/temp/ReportServiceEndPoint_handler.xml")
public class ReportService1 implements Report
{
    @WebMethod
    @TransactionAttribute (javax.ejb.TransactionAttributeType.SUPPORTS)
    public SortingInfo getReport () throws ServiceException
    {

        SortingInfo sortingInfo = new SortingInfo();
        //sortingInfo.setSortingType(SortingTypes.ASC);
        //sortingInfo.setWeekType(WeekEnumTypes.Monday);
        return sortingInfo;

    }

    @WebMethod
 @TransactionAttribute (javax.ejb.TransactionAttributeType.SUPPORTS)
    public ReportColumnsBean getReportColumnsBean(int[] accounts) throws java.rmi.RemoteException
    {
        System.out.println("IN getReportColumnsBean");

        ReportColumnsBean rb = new ReportColumnsBean();
        return rb;

    }


}


and definition of SortingInfo.java and ReportColumnsBean.java are below.



public class SortingInfo implements java.io.Serializable
{

    public SortingInfo()
    {
    }
/* Suresh Comment
    public SortingTypes getSortingType()
    {
        return sortingType;
    }

    public void setSortingType(SortingTypes aSortingType)
    {
        sortingType = aSortingType;
    }
 */

    public String getName()
    {
        return theName;
    }

    public void setName(String aName)
    {
        theName = aName;
    }

    private String theName = null;
}

public class ReportColumnsBean implements java.io.Serializable
{
    public ReportColumnsBean()
    {
    }

    public ColumnInfo[] getColumns()
    { return theColumns; }

    public void setColumns(ColumnInfo[] aColumns)
    {
        theColumns = aColumns;
    }

    public ProductInfo[] getProducts()
    { return theProducts; }

    public void setProducts(ProductInfo[] aProducts)
    {
        theProducts = aProducts;
    }

    public SortingInfo[] getSorting()
    { return theSorting; }

    public void setSorting(SortingInfo[] aSorting)
    {
        theSorting = aSorting;
    }
    private ColumnInfo[] theColumns;
    private ProductInfo[] theProducts;
    private SortingInfo[] theSorting;
}




Here is the wsdl...
-

-
	<definitions name="ReportService1" targetNamespace="http://tsa/services">
-
	<types>
-
	<schema elementFormDefault="qualified" targetNamespace="http://tsa/services">
<import namespace="http://facade.tsa.com/jaws"/>
-
	<complexType name="ReportColumnsBean">
-
	<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="columns" nillable="true" type="ns2:ColumnInfo"/>
<element maxOccurs="unbounded" minOccurs="0" name="products" nillable="true" type="ns2:ProductInfo"/>
<element maxOccurs="unbounded" minOccurs="0" name="sorting" nillable="true" type="ns2:SortingInfo"/>
</sequence>
</complexType>
-
	<complexType name="ServiceException">
-
	<sequence>
<element name="errorString" nillable="true" type="string"/>
</sequence>
</complexType>
-
	<complexType name="SortingInfo">
-
	<sequence>
<element name="name" nillable="true" type="string"/>
</sequence>
</complexType>
-
	<complexType name="int.Array">
-
	<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="value" type="int"/>
</sequence>
</complexType>
<element name="ServiceException" type="tns:ServiceException"/>
</schema>
-
	<schema elementFormDefault="qualified" targetNamespace="http://facade.tsa.com/jaws">
<import namespace="http://tsa/services"/>
-
	<complexType name="ColumnInfo">
-
	<sequence>
<element name="id" type="int"/>
<element name="name" nillable="true" type="string"/>
</sequence>
</complexType>
-
	<complexType name="ProductInfo">
-
	<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="ids" type="int"/>
<element name="name" nillable="true" type="string"/>
</sequence>
</complexType>
-
	<complexType name="SortingInfo">
-
	<sequence>
<element name="name" nillable="true" type="string"/>
</sequence>
</complexType>
</schema>
</types>
-
	<message name="ReportServiceEndPoint_getReportResponse">
<part name="result" type="tns:SortingInfo"/>
</message>
<message name="ReportServiceEndPoint_getReport"/>
-
	<message name="ReportServiceEndPoint_getReportColumnsBeanResponse">
<part name="result" type="tns:ReportColumnsBean"/>
</message>
-
	<message name="ReportServiceEndPoint_getReportColumnsBean">
<part name="int_1" type="tns:int.Array"/>
</message>
-
	<message name="ServiceException">
<part element="tns:ServiceException" name="ServiceException"/>
</message>
-
	<portType name="ReportServiceEndPoint">
-
	<operation name="getReport">
<input message="tns:ReportServiceEndPoint_getReport"/>
<output message="tns:ReportServiceEndPoint_getReportResponse"/>
<fault message="tns:ServiceException" name="ServiceException"/>
</operation>
-
	<operation name="getReportColumnsBean" parameterOrder="int_1">
<input message="tns:ReportServiceEndPoint_getReportColumnsBean"/>
<output message="tns:ReportServiceEndPoint_getReportColumnsBeanResponse"/>
</operation>
</portType>
-
	<binding name="ReportServiceEndPointBinding" type="tns:ReportServiceEndPoint">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
-
	<operation name="getReport">
<soap:operation soapAction=""/>
-
	<input>
<soap:body namespace="http://tsa/services" use="literal"/>
</input>
-
	<output>
<soap:body namespace="http://tsa/services" use="literal"/>
</output>
-
	<fault name="ServiceException">
<soap:fault name="ServiceException" use="literal"/>
</fault>
</operation>
-
	<operation name="getReportColumnsBean">
<soap:operation soapAction=""/>
-
	<input>
<soap:body namespace="http://tsa/services" use="literal"/>
</input>
-
	<output>
<soap:body namespace="http://tsa/services" use="literal"/>
</output>
</operation>
</binding>
-
	<service name="ReportService1">
-
	<port binding="tns:ReportServiceEndPointBinding" name="ReportServiceEndPointPort">
<soap:address location="http://whittier:8080/ReportService1/ReportService1"/>
</port>
</service>
</definitions>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jbossws-issues mailing list