error when invoking web services using UTL_DBWS
I followed the example in Oracle tutorial how to invoke the web service.
When I run it with
开发者_开发问答l_wsdl_url := 'http://www.oracle-base.com/webservices/server.php?wsdl';
It works fine.
However, if I create my own dynamic web application in Eclipse, and generate the SAME wsdl that oracle presents, and change the code to be:
l_wsdl_url := 'http://localhost:8080/MyProject/services/CalculatorPort?wsdl';
I get an exception:
ORA-29532: Java call terminated by uncaught Java exception:
java.lang.IllegalAccessException: error.build.wsdl.model: oracle.j2
ORA-29532: Java call terminated by uncaught Java exception:
java.lang.IllegalAccessException: error.build.wsdl.model: oracle.j2
So I added to the code:
sys.utl_dbws.set_http_proxy('http://localhost:8080');
I get the following exception:
ORA-29532: Java call terminated by uncaught Java exception:
java.lang.IllegalAccessException: error.build.wsdl.model: oracle.j2ORA-29532: Java call
terminated by uncaught Java exception: java.lang.IllegalAccessException:
error.build.wsdl.model: oracle.j2ee.ws.commons.tools.api.WsdlValidationExcpetion:
faultCode = PARSER_EXCEPTION error reading file at:
http://localhost:8080/MyProject/services/CalculatorPort?wsdl: http://localhost
The web services runs just fine out of PL/SQL (with soap-ui) tool.
The PL/SQL is sitting behind firewall on a different machine than my localhost application.
What's wrong in the request?
If I understood correctly, what is wrong is the fact that you are trying to call localhost in a different machine than yours. When testing on PL/SQL, please replace localhost by the ip of the machine where the web service is.
精彩评论