1
votes

I am using WSO2 BPS 3.2.0, WSO2 Application server 5.2.1 and WSO2 Identity server 5.0.0. I make BPS process which communicate with basic authentication secured ESB proxy services through HTTPS. Process have problem with soap action. Requests ends with Fault response:

<message><fault><faultcode xmlns:soapenv="http://schemas.xmlsoap.org/soa...">axis2ns10:Client</faultcode><faultstring xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">The endpoint reference (EPR) for the Operation not found is /services/RepositoryService and the WSA Action = . If this EPR was previously reachable, please contact the server administrator.</faultstring></fault></message>

I use unified-endpoints(UEPs) from this blog.

<wsa:EndpointReference
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.w3schools.com uep_schema.xsd"
    xmlns:wsa="http://www.w3.org/2005/08/addressing"
    xmlns:wsdl11="http://schemas.xmlsoap.org/wsdl/">
    <wsa:Action>http://docs.oasis-open.org/ns/cmis/ws/200908/RepositoryServicePort/getRepositoriesRequest</wsa:Action>
    <wsa:Metadata>
       <id>SInvokeEPR</id>
       <transport type="http">
       <authorization-username>user</authorization-username>
       <authorization-password>pass</authorization-password>
       </transport>
   </wsa:Metadata>
</wsa:EndpointReference>

I found some possibility with assign

<bpel:literal>
<wsa:Action xmlns:wsa="http://www.w3.org/2005/08/addressing">http://docs.oasis-open.org/ns/cmis/ws/200908/RepositoryServicePort/getRepositoriesRequest</wsa:Action>
</bpel:literal>

to output variable property

<bpel:to variable="RepositoryServicePLRequest" header="Action"></bpel:to>

But it doesn't work. But I found that it starts working when I enable SOAP Message Tracer in ESB. Why?

2

2 Answers

0
votes

You can use fix from this post
Add parameter

<parameter name="disableOperationValidation" locked="false">true</parameter>

to your proxy conf in WSO2 ESB

0
votes

I had been around this problem for the last two days. And I have several points to your question and your answer. To let you know I don“t have an ESB so I have the same problem but I can not use this approach to solve it.

First checking your first link you see there is no wsa:Action so you need to specify wsa:address instead.

The second problem is your SOAPACTION is not set. If you use SOAP 1.1 you need this header so BPS set it as "" for you but most of servers need the real action. To solve this you need to enableAddressing in your epr file. It is a bit confusing because it adds the proper ws-addressing information but it controls SOAPACTION which is not related to it.

So to solve the problem just put your epr like this:

<wsa:EndpointReference
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com uep_schema.xsd"
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:wsdl11="http://schemas.xmlsoap.org/wsdl/">
**<wsa:Address>http://docs.oasis-open.org/ns/cmis/ws/200908/RepositoryServicePort</wsa:Address>**
<wsa:Metadata>
   <id>SInvokeEPR</id>
   <transport type="http">
   <authorization-username>user</authorization-username>
   <authorization-password>pass</authorization-password>
   </transport>
   **<qos>
        <enableAddressing version="final" separateListener="true"/>
    </qos>**