Zdravim konferenciu,

mame existujucu web aplikaciu (spring-mvc, hibernate) a pre zakaznika
potrebujeme vytvorit web service.
Mojou prvou otazkou je ci je to dobry pristup "rozsirit" existujucu web
aplikaciu o web service
alebo je to lepsie mat ako samostatny projekt ?

Ked som to vyskusal ako samostatny projekt, tak bez problemov z browsera aj
z client
programu viem zavolat servisy.
Ked som to skusil dat uz do existujuceho projektu a ked sa snazim
ziskat WSDL web servicu z browsera pomocou linky
http://localhost:7001/ezu/hello?wsdl
tak to bez problemov ide ale z client programu dostanem exception :

Exception in thread "main" javax.xml.ws.WebServiceException:
java.net.ProtocolException: Server redirected too many  times (20)
at
com.sun.xml.ws.transport.http.client.HttpClientTransport.readResponseCodeAndMessage(HttpClientTransport.java:221)
at
com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:204)
at
com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:124)
at
com.sun.xml.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:118)


Moja trieda web servisu :

@WebService
@SOAPBinding(style = Style.RPC)
public class HelloWorld {

@Resource
private WebServiceContext wsContext;
 /**
 * Initializes the web service.
 */
 @PostConstruct
 @WebMethod(exclude = true)
 public void init()
 {
 System.out.println("Web service initialized, service context: " +
wsContext);
 }


@WebMethod(operationName="getHelloWorld")
public String getHelloWorld(@WebParam(name = "name") String name) {
return "Hello World JAX-WS " + name;
}
}



Pri inicializacii web servisu (init metoda) v logoch vidim pre
WebServiceContext null.


Zmeny co som vykonal vo web.xml su - pridal som :

 <listener>

<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
 </listener>

 <servlet>
<servlet-name>hello</servlet-name>
<servlet-class>
com.sun.xml.ws.transport.http.servlet.WSServlet
    </servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>


do projektu som pridal subor sun-jaxws.xml

<?xml version="1.0" encoding="UTF-8"?>
<endpoints
  xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime";
  version="2.0">
  <endpoint
      name="HelloWorldWs"
      implementation="x.y.HelloWorld"
      url-pattern="/hello"/>
</endpoints>


Este by som dodal ze to bezi na weblogicu.
Dakujem,
z.

Odpovedet emailem