Я работаю над проектом, который требует как веб-служб Rest, так и веб-служб SOAP. Проблема в том, что когда я пытался вызвать хранимую процедуру, используя SOAP, я получаю эту ошибку:
org.springframework.dao.InvalidDataAccessApiUsageException: параметр OUT / INOUT недоступен: результат;
вложенное исключение java .lang.IllegalArgumentException: параметр OUT / INOUT недоступен: результат
, хотя он отлично работает с помощью веб-службы Rest. Есть ли способ обойти это?
Теперь я определил хранимую процедуру:
@NamedStoredProcedureQuery(
name = VACompanyProfile.namedQuery_GetCompanyProfileAllowed,
procedureName = "COMPANY_PROFILE",
parameters = {
@StoredProcedureParameter(mode = ParameterMode.REF_CURSOR, type = ResultSet.class, name = "result"),
@StoredProcedureParameter(mode = ParameterMode.IN, type = String.class, name = "company_code_in")
}
)
@Procedure(name = VACompanyProfile.namedQuery_GetCompanyProfileAllowed)
ResultSet getClientIDAllowed(String companyCode);
мой Pom
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>src/main/java/wsdlentity</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/resources/wsdl/VirtualAccount.wsdl</wsdl>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>