Understood. However, I can't get it to work. When I add the WSDL file to the 
META-INF/wsdl folder of my EJB jar (I use a stateless session bean to implement 
the web service and the "start from WSDL" approach via wsconsume), JBoss 
publishes the web service using a file:// URL. For instance, the following SLSB 
(notice that the PolicyFile annotation is commented out):

@Stateless
  | @WebService(serviceName = "StationsService", wsdlLocation = 
"META-INF/wsdl/StationsService.wsdl",
  |     targetNamespace = "http://www.armoniq.com/StationsService/";,
  |     endpointInterface = 
"com.armoniq.stationsservice.StationsServicePortType"
  | )
  | @EndpointConfig(configFile = "META-INF/wsrm-jaxws-endpoint-config.xml", 
configName = "Standard WSRM Endpoint")
  | //@PolicyAttachment(@Policy(policyFileLocation = 
"META-INF/wsrm-exactly-once-in-order-policy.xml", scope = 
PolicyScopeLevel.WSDL_BINDING))
  | public class StationsService implements StationsServicePortType {
  |     // Logger logger = Logger
  |     // .getLogger(StationsService.class.getClass().getName());
  | 
  |     public void ping(String in) {
  |             System.out.println("Ping received with text: " + in);
  |             // logger.log(Level.INFO, "Ping received with text: " + in);
  |     }
  | }

Causes JBoss to publish this WSDL:

<wsdl:definitions name="StationsService"
  |     targetNamespace="http://www.armoniq.com/StationsService/";
  |     xmlns:echoes="http:/www.armoniq.com/echoes/2008/core"
  |     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
  |     xmlns:tns="http://www.armoniq.com/StationsService/"; 
  |     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; 
  |     xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"; 
  |     xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
  |  <wsdl:types>
  |   <xsd:schema targetNamespace="http://www.armoniq.com/StationsService/";>
  |    <xsd:import namespace="http:/www.armoniq.com/echoes/2008/core"
  |            
schemaLocation="http://localhost:8080/myrm.ear-myrm.ws.impl/StationsService?wsdl&resource=myrm.base.xsd"/>
  |    <xsd:element name="ping">
  |     <xsd:complexType>
  |      <xsd:sequence>
  |       <xsd:element name="in" type="xsd:string"/>
  |      </xsd:sequence>
  |     </xsd:complexType>
  |    </xsd:element>
  |   </xsd:schema>
  |  </wsdl:types>
  |  <wsdl:message name="pingRequest">
  |   <wsdl:part element="tns:ping" name="parameters"/>
  |  </wsdl:message>
  |  <wsdl:portType name="StationsServicePortType">
  |   <wsdl:operation name="ping">
  |    <wsdl:input message="tns:pingRequest"/>
  |   </wsdl:operation>
  |  </wsdl:portType>
  |  <wsdl:binding name="StationsServiceSOAP" 
type="tns:StationsServicePortType">
  |   <wsp:PolicyReference URI="#wsrm11policy"/>
  |   <soap:binding style="document" 
transport="http://schemas.xmlsoap.org/soap/http"/>
  |   <wsdl:operation name="ping">
  |    <soap:operation 
soapAction="http://www.armoniq.com/StationsService/fetchSchedule"/>
  |    <wsdl:input>
  |     <soap:body use="literal"/>
  |    </wsdl:input>
  |   </wsdl:operation>
  |  </wsdl:binding>
  |  <wsdl:service name="StationsService">
  |   <wsdl:port binding="tns:StationsServiceSOAP" name="StationsServicePort">
  |    <soap:address 
location="file://localhost:8080/myrm.ear-myrm.ws.impl/StationsService"/>
  |   </wsdl:port>
  |  </wsdl:service>
  |  <wsp:UsingPolicy/>
  |  <wsp:Policy wsu:Id="wsrm11policy" 
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd";>
  |   <wsp:All>
  |    <wsp:ExactlyOne>
  |     <wsp:All>
  |      <ns1:RMAssertion 
xmlns:ns1="http://docs.oasis-open.org/ws-rx/wsrmp/200702"/>
  |      <ns2:UsingAddressing 
xmlns:ns2="http://www.w3.org/2006/05/addressing/wsdl"/>
  |     </wsp:All>
  |    </wsp:ExactlyOne>
  |   </wsp:All>
  |  </wsp:Policy>
  | </wsdl:definitions>

Notice the <soap:address> tag that uses file:// as a protocol.

Even in the jbossws management console (http://localhost:8080/jbossws/services) 
the link uses this address and clicking on it does not work. You have to copy 
the link from the web page, paste it to the address bar of the browser and 
replace file: with http: to get to the (incorrect) WSDL.

I am using JBoss 4.2.3 and JBossWS 3.0.2.


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

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

Reply via email to