on 11-26-2007 5:34 AM
Hi Everyone,
Im trying to consume a web serviceclient in NWDS through a servlet.
I need to import the package <b>com.sap.engine.services.webservices.espbase.client.api.*;</b>( to give the HTTP proxy settings)
which is not available in the IDE.
Could you please help me out on the same.
Hi Hristo,
I have done that in the actual code..the one pasted here is only for presentation..
ne wez..thanks again...pls do let me know in case u get to know ne thin more
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Hristo,
The code u had given for the authenticator class did work...
thank u
but was a problem with the fire wall that could not enter the ES workplace service registry...was a problem with the landscape...but i did sorted it out.
Thanks again...glad u were aggo to know about it
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Hristo,
Thanks a lot for ur suggestion,im till getting the same exception ,The code is as follows:Would appreciate ur help again
@WebServiceRef(name="SalesOrder")SalesOrderByIDQueryResponseInService service;
public SalesOrderByIdResponse() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
// Get the port from the service instance
SalesOrderByIDQueryResponseIn port = service.getSalesOrderByIDQueryResponse_InSoapBinding();
//
Authenticator.setDefault(new Authenticator()
{
protected PasswordAuthentication getPasswordAuthentication() {
return new
PasswordAuthentication("username","password".toCharArray());
}
}
);
System.setProperty("proxyHost", "proxy1.wxyz.com");
System.setProperty("http.proxyHost", "proxy1.wxyz.com");
System.setProperty("proxyPort", "8080");
System.setProperty("http.proxyPort", "50104");
javax.xml.ws.BindingProvider bp = (javax.xml.ws.BindingProvider) port;
Map<String,Object> context = bp.getRequestContext();
context.put("javax.xml.ws.security.auth.username","s0004385249");
context.put("javax.xml.ws.security.auth.password","wipro123");
SalesOrderByIDQueryMessage_SyncType input = new SalesOrderByIDQueryMessage_SyncType();
SalesOrderSelectionByIDAnonymous selectionById = new SalesOrderSelectionByIDAnonymous();
input.setSalesOrderSelectionByID(selectionById);
SalesOrderIDType id = new SalesOrderIDType();
selectionById.setSalesOrderID(id);
id.setValue("9999");
// Call the service
SalesOrderByIDResponseMessage_SyncType output = port.salesOrderByIDQueryResponseIn(input);
SalesOrderAnonymous order = output.getSalesOrder();
// Evaluate and display the response
PrintWriter writer = response.getWriter();
writer.println("Details found for order " + id.getValue() + ":");
writer.println("<br>buyerID: " + order.getBuyerID().getValue());
writer.println("<br>date: " + order.getDate());
writer.println("<br>payerParty: " + order.getPayerParty().getFormattedName().getValue());
writer.println("<br>pricingTerms / currency: " + order.getPricingTerms().getCurrencyCode());
}
catch (Exception e)
{
throw new ServletException(e);
}
}
The prog gets deployed successfully but when i call the servlet,This is the error i get despite ur suggestion
"Application error occurred during the request procession."
Details: <b>Exception:</b>
javax.servlet.ServletException: javax.xml.ws.WebServiceException: HTTP Status-Code 407: Proxy Authentication Required
at testsoid.SalesOrderByIdResponse.doGet(SalesOrderByIdResponse.java:73)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:59)
at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:31)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:431)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:288)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:376)
at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:85)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:160)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:67)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:308)
at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.run(Processor.java:221)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:137)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:229)
Caused by: javax.xml.ws.WebServiceException: HTTP Status-Code 407: Proxy Authentication Required
at com.sun.xml.ws.util.SOAPConnectionUtil.getSOAPMessage(SOAPConnectionUtil.java:81)
at com.sun.xml.ws.encoding.soap.client.SOAPXMLDecoder.toSOAPMessage(SOAPXMLDecoder.java:100)
at com.sun.xml.ws.protocol.soap.client.SOAPMessageDispatcher.receive(SOAPMessageDispatcher.java:438)
at com.sun.xml.ws.protocol.soap.client.SOAPMessageDispatcher.doSend(SOAPMessageDispatcher.java:258)
at com.sun.xml.ws.protocol.soap.client.SOAPMessageDispatcher.send(SOAPMessageDispatcher.java:137)
at com.sun.xml.ws.encoding.soap.internal.DelegateBase.send(DelegateBase.java:84)
at com.sun.xml.ws.client.EndpointIFInvocationHandler.implementSEIMethod(EndpointIFInvocationHandler.java:172)
at com.sun.xml.ws.client.EndpointIFInvocationHandler.invoke(EndpointIFInvocationHandler.java:106)
at $Proxy342_10002.salesOrderByIDQueryResponseIn(Unknown Source)
at testsoid.SalesOrderByIdResponse.doGet(SalesOrderByIdResponse.java:61)
... 30 more
Caused by: HTTP Status-Code 407: Proxy Authentication Required
at com.sun.xml.ws.transport.http.client.HttpClientTransport.checkResponseCode(HttpClientTransport.java:305)
at com.sun.xml.ws.transport.http.client.HttpClientTransport.getHeaders(HttpClientTransport.java:158)
at com.sun.xml.ws.util.SOAPConnectionUtil.getSOAPMessage(SOAPConnectionUtil.java:57)
... 39 more
<BR><BR><b>Root cause:</b>
javax.xml.ws.WebServiceException: HTTP Status-Code 407: Proxy Authentication Required
at com.sun.xml.ws.util.SOAPConnectionUtil.getSOAPMessage(SOAPConnectionUtil.java:81)
at com.sun.xml.ws.encoding.soap.client.SOAPXMLDecoder.toSOAPMessage(SOAPXMLDecoder.java:100)
at com.sun.xml.ws.protocol.soap.client.SOAPMessageDispatcher.receive(SOAPMessageDispatcher.java:438)
at com.sun.xml.ws.protocol.soap.client.SOAPMessageDispatcher.doSend(SOAPMessageDispatcher.java:258)
at com.sun.xml.ws.protocol.soap.client.SOAPMessageDispatcher.send(SOAPMessageDispatcher.java:137)
at com.sun.xml.ws.encoding.soap.internal.DelegateBase.send(DelegateBase.java:84)
at com.sun.xml.ws.client.EndpointIFInvocationHandler.implementSEIMethod(EndpointIFInvocationHandler.java:172)
at com.sun.xml.ws.client.EndpointIFInvocationHandler.invoke(EndpointIFInvocationHandler.java:106)
at $Proxy342_10002.salesOrderByIDQueryResponseIn(Unknown Source)
at testsoid.SalesOrderByIdResponse.doGet(SalesOrderByIdResponse.java:61)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:59)
at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:31)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:431)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:288)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:376)
at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:85)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:160)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:67)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:308)
at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.run(Processor.java:221)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:137)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:229)
Caused by: HTTP Status-Code 407: Proxy Authentication Required
at com.sun.xml.ws.transport.http.client.HttpClientTransport.checkResponseCode(HttpClientTransport.java:305)
at com.sun.xml.ws.transport.http.client.HttpClientTransport.getHeaders(HttpClientTransport.java:158)
at com.sun.xml.ws.util.SOAPConnectionUtil.getSOAPMessage(SOAPConnectionUtil.java:57)
... 39 more
javax.xml.ws.WebServiceException: HTTP Status-Code 407: Proxy Authentication Required
at com.sun.xml.ws.util.SOAPConnectionUtil.getSOAPMessage(SOAPConnectionUtil.java:81)
at com.sun.xml.ws.encoding.soap.client.SOAPXMLDecoder.toSOAPMessage(SOAPXMLDecoder.java:100)
at com.sun.xml.ws.protocol.soap.client.SOAPMessageDispatcher.receive(SOAPMessageDispatcher.java:438)
at com.sun.xml.ws.protocol.soap.client.SOAPMessageDispatcher.doSend(SOAPMessageDispatcher.java:258)
at com.sun.xml.ws.protocol.soap.client.SOAPMessageDispatcher.send(SOAPMessageDispatcher.java:137)
at com.sun.xml.ws.encoding.soap.internal.DelegateBase.send(DelegateBase.java:84)
at com.sun.xml.ws.client.EndpointIFInvocationHandler.implementSEIMethod(EndpointIFInvocationHandler.java:172)
at com.sun.xml.ws.client.EndpointIFInvocationHandler.invoke(EndpointIFInvocationHandler.java:106)
at $Proxy342_10002.salesOrderByIDQueryResponseIn(Unknown Source)
at testsoid.SalesOrderByIdResponse.doGet(SalesOrderByIdResponse.java:61)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:59)
at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:31)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:431)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:288)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:376)
at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:85)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:160)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:67)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:308)
at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.run(Processor.java:221)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:137)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:229)
Caused by: HTTP Status-Code 407: Proxy Authentication Required
at com.sun.xml.ws.transport.http.client.HttpClientTransport.checkResponseCode(HttpClientTransport.java:305)
at com.sun.xml.ws.transport.http.client.HttpClientTransport.getHeaders(HttpClientTransport.java:158)
at com.sun.xml.ws.util.SOAPConnectionUtil.getSOAPMessage(SOAPConnectionUtil.java:57)
... 39 more
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Hristo,
I did the settings as u suggested,but again it throws up the error
Proxy Authentication required at the servlet..
ne idea how i can solve it??
Appreciate ur help
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
It seems that your proxy requires authentication. In such a case the java.net.Authenticator needs to be used.
The usage pattern is something like:
Authenticator.setDefault(new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new
PasswordAuthentication("mydomain
username","password".toCharArray());
}});
Regards,
Hristo
Hi Mohd,
From the problem you describe I assume that you're using NetWeaver Developer Studio Composition Environement 7.1 SP1. In SP1 it's not possible to set the http proxy for a single web service client (stub). The documentation that you point to is relevent for the 7.1 SP3 release.
In SP1 http settings could be set on system level using the System properties. for example do something like:
System.setProperty("proxyHost", "proxy");
System.setProperty("http.proxyHost", "proxy");
System.setProperty("proxyPort", "8080");
System.setProperty("http.proxyPort", "8080");
I would recomend you to configure the proxy settings on engine via the NetWeaver Administrator. Using NetWeaver Administrator you could also configure other web service proxy (web service stub) properties like user/pass & others.
Regards,
Hristo
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
85 | |
10 | |
10 | |
9 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.