[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