Publishing a WS with Jax-WS Endpoint
35,414
Could you try publishing it on 0.0.0.0?
Author by
daniel
Updated on July 09, 2022Comments
-
daniel almost 2 years
I built a minimal web service and published it using javax.xml.ws.Endpoint. If I try to get the WSDL at
http://localhost:1234/AddService?wsdl
it works fine.Trying to recieve it at
http://192.168.0.133:1234/AddService?wsdl
, I don't receive anything. This address is the same as localhost.Is there a posibiility to publish a webservice without providing the address?
package test; import javax.jws.WebMethod; import javax.jws.WebService; import javax.xml.ws.Endpoint; @WebService public class AddService { @WebMethod public int add(int a, int b){ return a+b; } public static void main(String[] args ){ Endpoint.publish("http://localhost:1234/AddService", new AddService()); } }
Changing the code to
Endpoint.publish("http://192.168.0.133:1234/AddService", new AddService());
gets me the wsdl on the IP address but not on localhost.
Isn't there a posibility to just define the port?
-
daniel almost 14 yearsThis works. localhost, 0.0.0.0 and 192.168.0.133 gets me the wsdl. But why doesn't it, while publishing on localhost or the other ip.
-
ivy almost 14 yearsHappy to hear it works. localhost is ip 127.0.0.1 , and Endpoint.publish (obviously) only binds to the provided address. With 0.0.0.0 you tell it to 'listen' to incoming connections to any ip-address (associated with your computer). It can be a handy feature to only bind to a specific ip-address, e.g. if you want your service to be only available to a certain subnet...
-
matbrgz almost 13 yearsGreat trick. Is this officially supported or just a handy side-effect?
-
ivy almost 13 yearsIt's an 'official way', but why it works is a matter of ipv4 specification; check en.wikipedia.org/wiki/IPv4 or questions on stackoverflow on this subject : stackoverflow.com/search?q=0.0.0.0
-
matbrgz about 12 yearsWhat would the equivalent be for IPv6?
-
S R Chaitanya almost 6 yearsI have couple of questions. 1) The publish method of Endpoint, takes a URL to bind to but the URL changes from environment to environment. So, dynamically constructing the path is the best way or is there any other best practice. 2) My current project runs on IBM WAS8.5.5,and the JAX-WS annotated classes are automatically scanned. So, when should one use Endpoint publish method.
-
9ilsdx 9rvj 0lo about 5 yearsAmazing how the question makes the answer, where many other answers are actually questions.
-
9ilsdx 9rvj 0lo about 5 yearsIt is exactly what the OP is trying, read the question and not post something random that doesn't work.