Hi,

I think policy attachments should help in your case: 
https://www.w3.org/TR/ws-policy-attach/

Take a look in CXF test: 
https://github.com/apache/cxf/blob/master/systests/ws-specs/src/test/java/org/apache/cxf/systest/ws/policy/AddressingPolicyExternalAttachmentWsdl11Test.java
 

Regards,
Andrei.

> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On Behalf Of
> Decker
> Sent: Montag, 17. April 2017 20:40
> To: [email protected]
> Subject: policy Reference URIs
> 
> Hi all,
> 
> I'm fairly new to CXF (started in the last couple months), and I've been
> integrating it into a Spring Boot & Integration project (client) with some
> success.
> 
> The thing is, I've been stuck on a couple issues for the last few days, and 
> after
> trial-and-error and stepping through apache-cxf-rt code, I thought I'd finally
> admit I have a problem, and come and ask for help:
> 
> There's a wsdl for a service I have to integrate with, that has an external 
> file
> policyReference in a soap12:operation block. It allegedly works in a legacy 
> axis
> application without modification:
> 
> It is, literally:
> <wsp:Policy>
>      <wsp:PolicyReference URI="policy:OurPolicy.xml#messageInput" />
> </wsp:Policy>
> 
> How do you get this to resolve?  Here's what I tried:
> When I copy the contents of "OurPolicy.xml" into the wsdl itself, and get rid 
> of
> the bit before the '#', cxf resolves it properly and all is right with the 
> world.  But
> I have several dozen wsdls like this, so hand editing each one this way would
> be... undesirable.
> 
> I've become very familiar with the error "RuntimeException
> policy:OurPolicy.xml#messageInput cannot be resoved":
> 
> I tried copying the file into the classpath in several different locations to 
> no
> avail.
> I tried adding a <jaxws:features> to the <jaxws:client> like:
> <jaxws:features>
>      <p:policies>
>           <externalAttachment location="policy.OurPolicy.xml"
>      </p:policies>
> </jaxws:features>
> which didn't work, and I tried "classpath" in place of the "policy:"
> scheme, without success.  Also thought maybe I could load it from a location
> and give it the policy name, but that didn't work either.  Google was 
> unhelpful,
> and the sample code in apache-cxf ws_security uses a policy which is in the
> wsdl itself, (the version of the world I got to work earlier).
> I debugged down into the EffectivePolicyImpl class to see if I could find what
> the policy was being named, but after tracing this around for another hour I
> figured I'd break down and ask...
> 
> I'm assuming I need to do _something_ to make the Bus aware of this policy, in
> such a way that the wsdls will resolve it, but I could certainly use any help 
> or
> suggestions you have.
> 
> Thanks in advance,
> Decker

Reply via email to