Zdravím, podobnou chybu jsem dostal při mém experimentování s web
službami, když dané url požadovalo přihlášení uživatele a klient to
neprovedl. Máte v aplikaci zabezpečený přístup s přihlášením a v
samostatném projektu ne? Jaroslav Hurdes
Dne 7.8.2013 16:21, Zoltan Palenik napsal(a):
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
linkyhttp://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.