Oracle APEX и WSDL сервис - PullRequest
       5

Oracle APEX и WSDL сервис

1 голос
/ 04 октября 2019

У меня есть простой класс Java, развернутый в WebLogic 12c в качестве приложения. Application Express 5.0.3.00.03.

package wsdltest;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

@WebService
public class Class1 {
    public Class1() {
        super();
    }

    @WebMethod
    public String getA(@WebParam(name = "arg0") String a) {
        return a;
    }
}

wsdl

<!--
 Published by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.3.0-b170407.2038 svn-revision#2eaca54d17a59d265c6fe886b7fd0027836c766c. 
-->
<!--
 Generated by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.3.0-b170407.2038 svn-revision#2eaca54d17a59d265c6fe886b7fd0027836c766c. 
-->
<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://wsdltest/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://wsdltest/" name="Class1Service">
<types>
<xsd:schema>
<xsd:import namespace="http://wsdltest/" schemaLocation="http://172.28.36.23:7001/Raznosti-WSDLTest-context-root/Class1Port?xsd=1"/>
</xsd:schema>
</types>
<message name="getA">
<part name="parameters" element="tns:getA"/>
</message>
<message name="getAResponse">
<part name="parameters" element="tns:getAResponse"/>
</message>
<portType name="Class1">
<operation name="getA">
<input wsam:Action="http://wsdltest/Class1/getARequest" message="tns:getA"/>
<output wsam:Action="http://wsdltest/Class1/getAResponse" message="tns:getAResponse"/>
</operation>
</portType>
<binding name="Class1PortBinding" type="tns:Class1">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="getA">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="Class1Service">
<port name="Class1Port" binding="tns:Class1PortBinding">
<soap:address location="http://172.28.36.23:7001/Raznosti-WSDLTest-context-root/Class1Port"/>
</port>
</service>
</definitions>

Я создал APEX WebService Reference (на основе файла WSDL) с помощью мастера. URL был проанализирован, параметры ввода / вывода были найдены.

WebService Reference Я также создал форму на веб-сервисе. Поля ввода / вывода, кнопка отправки, процесс - все они были созданы мастером, никакой ручной работы. Но при каждой отправке формы я получаю сообщение об ошибке ns0:ClientCannot find dispatch method for {}arg0. Я могу успешно протестировать этот веб-сервис от JDeveloper. Я могу создать ручной тип ссылки на WebService с прямой настройкой всех параметров, включая SOAP Envelop и т. Д., И его работает .

Почему стандартный веб-сервис, созданный мастеромоснованный на правильном (как я полагаю) WSDL не работает?

...