I'm using servicemix (fuse 4.1.0.2) with cxf 2.2.2.1-fuse and the cxf osgi
transport 4.1.0.2-fuse on a windows machine with jdk 6u16.

I'm trying to make a simple jaxws service like the servicemix 
http://servicemix.apache.org/SMX4/cxf-examples.html cxf-osgi example . 
Something like:

<jaxws:endpoint 
  id="helloWorld" 
  implementor="org.apache.servicemix.examples.cxf.HelloWorldImpl"
  address="/HelloWorld"/>

and the WebService annotations are simple. Just @WebService on the
@WebService(endpointInterface =
"org.apache.servicemix.examples.cxf.HelloWorld") on the implementation.

The example page I linked earlier says that the service should be published
at http://localhost:8080/cxf/HelloWorld?wsdl, but for me its at a different
port, http://localhost:8181/cxf/HelloWorld?wsdl.  I had to netstat to find
what port it was listening on.  I can access the WSDL fine and exercise it
with SoapUI, and the example client.

So, I have four questions:
1.  Why is the port different (8080 vs 8181), and how is it determined?
2.  Why is the service at /cxf/HelloWorld, when the jaxws endpoint
definition said it is at /HelloWorld?  I assume some kind of cxf context is
prepended, but how is this controlled and where?  And can I override it in
my service configuration, either spring or annotation?
3.  This is probably the most important.  How can my service know what its
actual location is?  Even if I grab the WebServiceContext using a @Resource
annotation, it only gives me an address of /HelloWorld, not the full
http://localhost:8181/cxf/HelloWorld?wsdl.  I want to be able to register
the service in UDDI.
4.  If I change the address from /HelloWorld to nmr:HelloWorld, how would
the service know its endpoint?

Thanks!!!

-John

-- 
View this message in context: 
http://www.nabble.com/How-can-a-jaxws-service-know-its-location--tp25775479p25775479.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to