我按照Oracle tutorial中的示例如何调用Web服务。
当我用
运行它时 l_wsdl_url := 'http://www.oracle-base.com/webservices/server.php?wsdl';
工作正常。
但是,如果我在Eclipse中创建自己的动态Web应用程序,并生成oracle presents的SAME wsdl,并将代码更改为:
l_wsdl_url := 'http://localhost:8080/MyProject/services/CalculatorPort?wsdl';
我得到一个例外:
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
所以我添加了代码:
sys.utl_dbws.set_http_proxy('http://localhost:8080');
我得到以下异常:
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
使用PL / SQL(使用soap-ui)工具可以很好地运行Web服务。
PL / SQL位于与我的localhost应用程序不同的机器上的防火墙后面。
请求中有什么问题?
答案 0 :(得分:0)
如果我理解正确,那么你错误的是你试图在与你不同的机器中调用localhost。在PL / SQL上进行测试时,请使用Web服务所在机器的IP替换localhost。