on 02-09-2010 6:34 PM
While trying to use an adaptive webservice model, I'm getting a commun error:
Exception on execution of web service with WSDL URL 'http://srcs00048:50200/UserValidator/Config1?wsdl ' with operation 'validateUser' in interface 'UserValidatorVi_Document'
I have already tested the webservice and It's working fine in webservice navigator when using the correct username and password.
So, I found some workarounds to set the username and password in my controller before I call the execute method:
import javax.xml.rpc.Stub;
import com.sap.tc.webdynpro.model.webservice.api.IWDWSInvocationModifier;
import com.sap.engine.services.webservices.espbase.client.dynamic.DInterfaceInvoker;
...
wdContext.currentXXXXElement().modelObject().wdSetInvocationModifier(
new IWDWSInvocationModifier() {
public void doModifyInvocation(final Object port) {
if ( port instanceof Stub ) {
final Stub stub = (Stub)port;
stub._setProperty(Stub.USERNAME_PROPERTY, "username");
stub._setProperty(Stub.PASSWORD_PROPERTY, "password");
} else if (port instanceof DInterfaceInvoker) {
final DInterfaceInvoker invoker = (DInterfaceInvoker)port;
invoker.setProperty(Stub.USERNAME_PROPERTY, "username");
invoker.setProperty(Stub.PASSWORD_PROPERTY, "password");
} else
throw new RuntimeException("This 'clever' hack does not work");
}
public void doModifyAfterInvocation() {}
}
);
And.... http://wiki.sdn.sap.com/wiki/display/WDJava/ExceptiononExecutionofWeb+Service
Both did not work.....
What am I doing wrong?
Edited by: Vinicius Faleiro on Feb 9, 2010 7:34 PM
Edited by: Vinicius Faleiro on Feb 9, 2010 7:36 PM
Hi Vinicius
Check logs and traces for more helpful error message with additional hints. The problem might be not in user authentication, but generic web-service availability by the URL.
BR, Siarhei
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi... See the trace...
Exception on execution of web service with WSDL URL 'http://srcs00048:50200/UserValidator/Config1?wsdl ' with operation 'validateUser' in interface 'UserValidatorVi_Document' Stack: com.sap.tc.webdynpro.model.webservice.api.WDWSModelExecuteException: Exception on execution of web service with WSDL URL 'http://srcs00048:50200/UserValidator/Config1?wsdl ' with operation 'validateUser' in interface 'UserValidatorVi_Document' at com.sap.tc.webdynpro.model.webservice.model.WSGenericModelClassExecutable.execute(WSGenericModelClassExecutable.java:78) at com.sap.tc.webdynpro.model.webservice.gci.WSTypedModelClassExecutable.execute(WSTypedModelClassExecutable.java:46) at sap.gnt_laboral.UserValidatorCust.executeRequest_ValidateUser(UserValidatorCust.java:148) at sap.gnt_laboral.wdp.InternalUserValidatorCust.executeRequest_ValidateUser(InternalUserValidatorCust.java:160) at sap.gnt_laboral.MinhasAulas.onActionButton_0(MinhasAulas.java:160) at sap.gnt_laboral.wdp.InternalMinhasAulas.wdInvokeEventHandler(InternalMinhasAulas.java:187) at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87) at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:67) at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doHandleActionEvent(WindowPhaseModel.java:420) at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:132) at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335) at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143) at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:319) at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:713) at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:666) at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:250) at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149) at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62) at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401) at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266) at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386) at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364) at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039) at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265) at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95) at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(AccessController.java:207) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172) Caused by: java.lang.reflect.InvocationTargetException: Cannot find the required parameter [username] in request message content. at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.processDocumentFault(MimeHttpBinding.java:927) at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.call(MimeHttpBinding.java:1439) at Config1BindingStub._invoke(Config1BindingStub.java:100) at com.sap.engine.services.webservices.espbase.client.dynamic.impl.DInterfaceInvokerImpl.invokeOperation(DInterfaceInvokerImpl.java:63) at com.sap.tc.webdynpro.model.webservice.model.WSGenericModelClassExecutable.execute(WSGenericModelClassExecutable.java:68) at com.sap.tc.webdynpro.model.webservice.gci.WSTypedModelClassExecutable.execute(WSTypedModelClassExecutable.java:46) at sap.gnt_laboral.UserValidatorCust.executeRequest_ValidateUser(UserValidatorCust.java:148) at sap.gnt_laboral.wdp.InternalUserValidatorCust.executeRequest_ValidateUser(InternalUserValidatorCust.java:160) at sap.gnt_laboral.MinhasAulas.onActionButton_0(MinhasAulas.java:160) at sap.gnt_laboral.wdp.InternalMinhasAulas.wdInvokeEventHandler(InternalMinhasAulas.java:187) at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87) at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:67) at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doHandleActionEvent(WindowPhaseModel.java:420) at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:132) at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335) at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143) at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:319) at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:713) at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:666) at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:250) at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149) at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62) at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401) at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266) at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386) at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364) at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039) at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265) at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95) at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(AccessController.java:207) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172) Caused by: javax.xml.rpc.soap.SOAPFaultException: Cannot find the required parameter [username] in request message content. at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.buildFaultException(MimeHttpBinding.java:737) at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.processDocumentFault(MimeHttpBinding.java:860) at com.sap.engine.services.webservices.jaxrpc.wsdl2java.soapbinding.MimeHttpBinding.call(MimeHttpBinding.java:1439) at Config1BindingStub._invoke(Config1BindingStub.java:100) at com.sap.engine.services.webservices.espbase.client.dynamic.impl.DInterfaceInvokerImpl.invokeOperation(DInterfaceInvokerImpl.java:63) at com.sap.tc.webdynpro.model.webservice.model.WSGenericModelClassExecutable.execute(WSGenericModelClassExecutable.java:68) at com.sap.tc.webdynpro.model.webservice.gci.WSTypedModelClassExecutable.execute(WSTypedModelClassExecutable.java:46) at sap.gnt_laboral.UserValidatorCust.executeRequest_ValidateUser(UserValidatorCust.java:148) at sap.gnt_laboral.wdp.InternalUserValidatorCust.executeRequest_ValidateUser(InternalUserValidatorCust.java:160) at sap.gnt_laboral.MinhasAulas.onActionButton_0(MinhasAulas.java:160) at sap.gnt_laboral.wdp.InternalMinhasAulas.wdInvokeEventHandler(InternalMinhasAulas.java:187) at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87) at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:67) at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doHandleActionEvent(WindowPhaseModel.java:420) at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:132) at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335) at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143) at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:319) at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:713) at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:666) at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:250) at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149) at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62) at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401) at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266) at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386) at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364) at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039) at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265) at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95) at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(AccessController.java:207) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:102) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:172)
Now I could see that my problem is not about authentication. I built a new webservice without any need of authentication for testing...
So I tested it at webservices navigator and it is working fine, and also it is not asking any user or password.
Then, I created another controller in my webdynpro and using the template tool, I mapped the model with my context. So now I have a method like this in my controller:
public void executeRequest_ValidateGntUser( )
{
IWDMessageManager manager = wdComponentAPI.getMessageManager();
try
{
wdContext.currentRequest_ValidateGntUserElement().modelObject().execute();
wdContext.nodeResponse().invalidate();
wdContext.nodeValidateGntUserResponse().invalidate();
}
catch(Exception e)
{
StringWriter sw = new StringWriter();
e.printStackTrace(new PrintWriter(sw));
manager.reportException(e.getMessage() + " " + sw.toString(), false);
}
After this, I created a view called loggin and mapped with the context. So now I have avaiable the Request_ValidateUser_Gnt Node. I used the template tool and created a form.
Then, I have manually created the nodes like this:
public void wdDoInit()
{
Gnt_user_auth model = new Gnt_user_auth();
wdContext.nodeRequest_ValidateGntUser().bind(new Request_ValidateGntUser(model));
wdContext.nodeRequest_ValidateGntUser().nodeValidateGntUser().bind(new ValidateGntUser(model));
wdContext.nodeRequest_ValidateGntUser().nodeResponse().bind(new Response_ValidateGntUser(model));
}
Then, I created a view for the result. I used the same logic that I used at loggin view (Using template) but for the Reponse node.
After this, I created a firePLug and a button at Loggin view. So, before firing this plug, I called this method:
wdThis.wdGetGnt_user_authCustController().executeRequest_ValidateGntUser()
Anyway, I could see that this problem is not about authentication because it is still the same problem. The only thing I was able to see is that in my stacktrace there is a line that says: Caused by: java.lang.reflect.InvocationTargetException: Cannot find the required parameter [username] in request message content. at
This username parameter is needed at my webservice implementation. Problably it was not found in my request.
Does anyone have any idea?
Edited by: Vinicius Faleiro on Feb 15, 2010 8:00 PM
Edited by: Vinicius Faleiro on Feb 15, 2010 8:00 PM
Edited by: Vinicius Faleiro on Feb 15, 2010 8:01 PM
Hi
Try to remove the code below and execute the service without it. I think the code causes the problem with parameter "username".
if ( port instanceof Stub ) {
final Stub stub = (Stub)port;
stub._setProperty(Stub.USERNAME_PROPERTY, "username");
stub._setProperty(Stub.PASSWORD_PROPERTY, "password");
} else if (port instanceof DInterfaceInvoker) {
final DInterfaceInvoker invoker = (DInterfaceInvoker)port;
invoker.setProperty(Stub.USERNAME_PROPERTY, "username");
invoker.setProperty(Stub.PASSWORD_PROPERTY, "password");
}
BR, Siarhei
User | Count |
---|---|
87 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.