JSR-181 deploying a ejb3 stateless as a web service using JBossIDE.

JBoss 4.0.5.GA
JBossIDE 2.0.0 Beta 2
JDK 1.5.0_08

On a method:

  | @javax.jws.WebMethod()
  | public Collection<News> getNews() {
  | }
  | 

where News is an ejb3 entity bean (complex type):


  | @Entity
  | @Table( name = "news", uniqueConstraints = {})
  | public class News implements java.io.Serializable {
  |     // Fields    
  |     private static final long serialVersionUID = 1L;
  |     private Long id;
  |     private String title;
  |     private String description;
  |     private String body;
  |     private String author;
  |     private Set< RssItem> rssItems = new HashSet< RssItem>( 0);
  | ...
  | ...
  | ...
  | 

The WSDL generated does not contain a sequence with the complex type defined:


  |   <complexType name="Collection">
  |   <sequence>
  |   <element name="empty" type="boolean" /> 
  |   </sequence>
  |   </complexType>
  |   <complexType name="News">
  |   <sequence>
  |   <element name="author" nillable="true" type="string" /> 
  |   <element name="body" nillable="true" type="string" /> 
  |   <element name="description" nillable="true" type="string" /> 
  |   <element name="id" nillable="true" type="long" /> 
  |   <element name="title" nillable="true" type="string" /> 
  |   </sequence>
  |   </complexType>
  |   </schema>
  | 
  |   <message name="ResonusBE_getNewsResponse">
  |   <part name="result" type="tns:Collection" /> 
  |   </message>
  | 
  | <message name="ResonusBE_getNews" /> 
  | 
  |  <operation name="getNews">
  |   <input message="tns:ResonusBE_getNews" /> 
  |   <output message="tns:ResonusBE_getNewsResponse" /> 
  |   </operation>
  | 
  | 

Notice that the collection specified for Collection is collection with a 
boolen... not even close to the right type.

The News complex type only shows up in the WSDL if I explicitly have another 
method that returns News. It won't show up if it's just with in the Collection 
generics.

For testing purposes I tried out the XFire java->wsdl libraries... it does a 
nice job:


  |  <xsd:complexType name="ArrayOfNews">
  |   <xsd:sequence>
  |   <xsd:element maxOccurs="unbounded" minOccurs="0" name="News" 
nillable="true" type="tns:News" /> 
  |   </xsd:sequence>
  |   </xsd:complexType>
  |   <xsd:complexType name="News">
  |   <xsd:sequence>
  |   <xsd:element minOccurs="0" name="author" nillable="true" 
type="xsd:string" /> 
  |   <xsd:element minOccurs="0" name="body" nillable="true" type="xsd:string" 
/> 
  |   <xsd:element minOccurs="0" name="description" nillable="true" 
type="xsd:string" /> 
  |   <xsd:element minOccurs="0" name="id" nillable="true" type="xsd:long" /> 
  |   <xsd:element minOccurs="0" name="title" nillable="true" type="xsd:string" 
/> 
  |   </xsd:sequence>
  |   </xsd:complexType>
  | 

Thoughts? Am I missing something?



View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3996567#3996567

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3996567
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to