[prev in list] [next in list] [prev in thread] [next in thread] 

List:       jboss-user
Subject:    [jboss-user] [JBoss Web Services Users] - Re: Newbie: Empty
From:       gwzoller <do-not-reply () jboss ! com>
Date:       2009-11-30 21:24:35
Message-ID: 21824907.1259616275975.JavaMail.jboss () nukes01 ! app ! mwc ! hst ! phx2 ! redhat ! com
[Download RAW message or body]

Ok...  I have 1/2 an answer.  By playing with the annotations (brute force really) I \
can now get my list going over the wire, but... I lost my WSDL.

New Interface:
@WebService
  | public interface OrderTakerRemote {
  | 	public String msg(ArrayList<String> say);
  | }
  | 

New Impl:
@Remote(OrderTakerRemote.class)
  | @WebService(endpointInterface="com.kepler.ecom.services.OrderTakerRemote")
  | @SOAPBinding(style = SOAPBinding.Style.RPC)
  | @Stateless 
  | public class OrderTaker implements OrderTakerRemote {
  | 
  |     // Default constructor. 
  |     public OrderTaker() {
  |     }
  |     
  |     @WebMethod
  |     public String msg(ArrayList<String> say) {
  |         // same as before
  |     }
  | }

I'd rather annotate the interface, not the implementation but to get it working it's \
a minor quibble.

My larger problem is the WSDL.  If I specify a simple @WebService (no endpoint \
parameter) in the impl then my WSDL looks something like this: <definitions \
name="OrderTakerService" targetNamespace="http://ecom.kepler..com/">  | -
  | <types>
  | -
  | <xs:schema targetNamespace="http://ecom.kepler.com/" version="1.0">
  | <xs:element name="msg" type="tns:msg"/>
  | <xs:element name="msgResponse" type="tns:msgResponse"/>
  | -
  | <xs:complexType name="msg">
  | -
  | <xs:sequence>
  | <xs:element maxOccurs="unbounded" minOccurs="0" name="arg0" type="xs:string"/>
  | </xs:sequence>
  | </xs:complexType>
  | -
  | <xs:complexType name="msgResponse">
  | -
  | <xs:sequence>
  | <xs:element minOccurs="0" name="return" type="xs:string"/>
  | </xs:sequence>
  | </xs:complexType>
  | </xs:schema>
  | </types>
  | -
  | <message name="OrderTaker_msg">
  | <part element="tns:msg" name="msg"/>
  | </message>
  | -
  | <message name="OrderTaker_msgResponse">
  | <part element="tns:msgResponse" name="msgResponse"/>
  | </message>
  | -
  | <portType name="OrderTaker">
  | -
  | <operation name="msg" parameterOrder="msg">
  | <input message="tns:OrderTaker_msg"/>
  | <output message="tns:OrderTaker_msgResponse"/>
  | </operation>
  | </portType>
  | -
  | <binding name="OrderTakerBinding" type="tns:OrderTaker">
  | <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
  | -
  | <operation name="msg">
  | <soap:operation soapAction=""/>
  | -
  | <input>
  | <soap:body use="literal"/>
  | </input>
  | -
  | <output>
  | <soap:body use="literal"/>
  | </output>
  | </operation>
  | -
  | <operation name="placeOrder_1_0">
  | <soap:operation soapAction=""/>
  | -
  | <input>
  | <soap:body use="literal"/>
  | </input>
  | -
  | <output>
  | <soap:body use="literal"/>
  | </output>
  | </operation>
  | </binding>
  | -
  | <service name="OrderTakerService">
  | -
  | <port binding="tns:OrderTakerBinding" name="OrderTakerPort">
  | <soap:address location="http://127.0.0.1:8080/keplerEAR-kepler/OrderTaker"/>
  | </port>
  | </service>
  | </definitions>

As shown in this code (with the endpoint parameter) my WSDL looks like this:
<definitions name="OrderTakerService" targetNamespace="http://ecom.kepler.com/">
  | <import location="http://127.0.0.1:8080/keplerEAR-kepler/OrderTaker?wsdl&resource=OrderTakerRemote_PortType8465038229007643058.wsdl" \
namespace="http://services.ecom.kepler.aviall.com/"/>  | -
  | <service name="OrderTakerService">
  | -
  | <port binding="ns1:OrderTakerRemoteBinding" name="OrderTakerPort">
  | <soap:address location="http://127.0.0.1:8080/keplerEAR-kepler/OrderTaker"/>
  | </port>
  | </service>
  | </definitions>

Somehow my Java client was fine with the abbreviated WSDL but I'm worried a non-Java \
client may need all the detail in the longer version.  The annotation combo that \
gives me the longer (more complete?) WSDL doesn't let me pass my list.  The short \
WSDL passes my list.

Any ideas what's going on?  What happened to all the stuff that defined the method \
calls and the parameter types?

Any ideas appreciated!  Confused newbie.  
Greg

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

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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic