You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Al Grant <bi...@gmail.com> on 2018/02/02 04:58:24 UTC
relative path to WSDL in CXF
Hello,
is there a way to get a relative path to the WSDL file? This code works:
@WebServiceClient(name = "SalesService", targetNamespace =
"urn:sales.com.au/schema/common", wsdlLocation =
"file:/H:/Desktop/cmd/importer/src/main/resources/SalesService.wsdl")
public class SalesService extends Service {
This code doesn't:
@WebServiceClient(name = "SalesService", targetNamespace =
"urn:sales.com.au/schema/common", wsdlLocation =
"src/main/resources/SalesService.wsdl")
public class SalesService extends Service {
Thanks in advance
Al
--
Sent from: http://cxf.547215.n5.nabble.com/cxf-user-f547216.html
Re: relative path to WSDL in CXF
Posted by Colm O hEigeartaigh <co...@apache.org>.
Yes, for example:
https://github.com/apache/cxf/blob/master/systests/ws-security/src/test/resources/alice.properties
Colm.
On Sat, Feb 3, 2018 at 6:50 AM, Al Grant <bi...@gmail.com> wrote:
> Can the crypto properties file use relative paths. Instead of:
>
> org.apache.ws.security.crypto.merlin.truststore.file=C:\\
> Users\\Owner\\IdeaProjects\\project1\\src\\main\\resources\\truststore.jks
>
> Something like:
>
> org.apache.ws.security.crypto.merlin.truststore.file=src\\
> main\\resources\\truststore.jks
>
> Thanks
>
>
>
> --
> Sent from: http://cxf.547215.n5.nabble.com/cxf-user-f547216.html
>
--
Colm O hEigeartaigh
Talend Community Coder
http://coders.talend.com
Re: relative path to WSDL in CXF
Posted by Al Grant <bi...@gmail.com>.
Can the crypto properties file use relative paths. Instead of:
org.apache.ws.security.crypto.merlin.truststore.file=C:\\Users\\Owner\\IdeaProjects\\project1\\src\\main\\resources\\truststore.jks
Something like:
org.apache.ws.security.crypto.merlin.truststore.file=src\\main\\resources\\truststore.jks
Thanks
--
Sent from: http://cxf.547215.n5.nabble.com/cxf-user-f547216.html
Re: relative path to WSDL in CXF
Posted by Al Grant <bi...@gmail.com>.
Better than in plain text!!
On Fri, Feb 2, 2018 at 11:14 PM, Colm O hEigeartaigh <co...@apache.org>
wrote:
> Well it can be, I think, but that's not buying you much security.
>
> Colm.
>
> On Fri, Feb 2, 2018 at 10:03 AM, Al Grant <bi...@gmail.com> wrote:
>
> > So the crypto properties file cant be hidden in the jar file?
> >
> >
> >
> > --
> > Sent from: http://cxf.547215.n5.nabble.com/cxf-user-f547216.html
> >
>
>
>
> --
> Colm O hEigeartaigh
>
> Talend Community Coder
> http://coders.talend.com
>
--
"Beat it punk!"
- Clint Eastwood
Re: relative path to WSDL in CXF
Posted by Colm O hEigeartaigh <co...@apache.org>.
Well it can be, I think, but that's not buying you much security.
Colm.
On Fri, Feb 2, 2018 at 10:03 AM, Al Grant <bi...@gmail.com> wrote:
> So the crypto properties file cant be hidden in the jar file?
>
>
>
> --
> Sent from: http://cxf.547215.n5.nabble.com/cxf-user-f547216.html
>
--
Colm O hEigeartaigh
Talend Community Coder
http://coders.talend.com
Re: relative path to WSDL in CXF
Posted by Al Grant <bi...@gmail.com>.
So the crypto properties file cant be hidden in the jar file?
--
Sent from: http://cxf.547215.n5.nabble.com/cxf-user-f547216.html
Re: relative path to WSDL in CXF
Posted by Colm O hEigeartaigh <co...@apache.org>.
You can encrypt the password in the Crypto properties file, but you still
need to supply a password somehow to decrypt the encrypted password. See
here:
http://coheigea.blogspot.ie/2014/02/apache-wss4j-200-part-iv.html
Colm.
On Fri, Feb 2, 2018 at 5:00 AM, Al Grant <bi...@gmail.com> wrote:
> Similar to last post :
>
>
> ((BindingProvider)iisrService).getRequestContext().put(
> SecurityConstants.ENCRYPT_PROPERTIES,
> "client_sign.properties");
>
> ((BindingProvider)iisrService).getRequestContext().put(
> SecurityConstants.SIGNATURE_PROPERTIES,
> "client_sign.properties");
>
> ((BindingProvider)iisrService).getRequestContext().put(
> SecurityConstants.SIGNATURE_USERNAME,
> "signingonly");
>
> ((BindingProvider)iisrService).getRequestContext().put(
> SecurityConstants.CALLBACK_HANDLER,
> ClientCallbackHandler.class.getName());
>
> Is there a way to avoid having the client_sign.properties file storing the
> username and password for the certificate alias in clear text on the hard
> disk?
>
>
>
>
>
> --
> Sent from: http://cxf.547215.n5.nabble.com/cxf-user-f547216.html
>
--
Colm O hEigeartaigh
Talend Community Coder
http://coders.talend.com
Re: relative path to WSDL in CXF
Posted by Al Grant <bi...@gmail.com>.
Similar to last post :
((BindingProvider)iisrService).getRequestContext().put(SecurityConstants.ENCRYPT_PROPERTIES,
"client_sign.properties");
((BindingProvider)iisrService).getRequestContext().put(SecurityConstants.SIGNATURE_PROPERTIES,
"client_sign.properties");
((BindingProvider)iisrService).getRequestContext().put(SecurityConstants.SIGNATURE_USERNAME,
"signingonly");
((BindingProvider)iisrService).getRequestContext().put(SecurityConstants.CALLBACK_HANDLER,
ClientCallbackHandler.class.getName());
Is there a way to avoid having the client_sign.properties file storing the
username and password for the certificate alias in clear text on the hard
disk?
--
Sent from: http://cxf.547215.n5.nabble.com/cxf-user-f547216.html
Re: relative path to WSDL in CXF
Posted by Al Grant <bi...@gmail.com>.
Finally worked with:
@WebServiceClient(name = "SalesService", targetNamespace =
"urn:sales.test.au/schema/common", wsdlLocation =
"classpath:SalesService.wsdl")
public class SalesService
extends Service
{
private final static URL SalesSERVICE_WSDL_LOCATION;
private final static WebServiceException SalesSERVICE_EXCEPTION;
private final static QName SalesSERVICE_QNAME = new
QName("urn:sales.test.au/schema/common", "SalesService");
static {
//URL url =
SalesService.class.getClassLoader().getResource("SalesService.wsdl");
URL url = null;
WebServiceException e = null;
try {
url =
SalesService.class.getClassLoader().getResource("SalesService.wsdl"); //new
URL("SalesService.wsdl");
} catch (Exception ex) {
e = new WebServiceException(ex);
}
SalesSERVICE_WSDL_LOCATION = url;
SalesSERVICE_EXCEPTION = e;
}
Note I had to use : getClassLoader().getResource()
--
Sent from: http://cxf.547215.n5.nabble.com/cxf-user-f547216.html
Re: relative path to WSDL in CXF
Posted by Al Grant <bi...@gmail.com>.
Hi,
This is getting very frustrating trying to get the project to find relative
paths to the WDSL.
Environment: Java 7
Build Tool: gradle
IDE: Intellij
The WSDL file runs fine in the IDE with :
@WebServiceClient(name = "SalesService", targetNamespace =
"urn:Sales.test.au/schema/common", wsdlLocation = "file:SalesService.wsdl")
public class SalesService
extends Service
{
private final static URL SalesSERVICE_WSDL_LOCATION;
private final static WebServiceException SalesSERVICE_EXCEPTION;
private final static QName SalesSERVICE_QNAME = new
QName("urn:Sales.test.au/schema/common", "SalesService");
static {
URL url = null;
WebServiceException e = null;
try {
url = new URL("file:SalesService.wsdl");
} catch (MalformedURLException ex) {
e = new WebServiceException(ex);
}
But try that same code in a packaged jar and it results in a file not found
(even though the file is present in the JAR).
This post seemed to be relevant:
https://stackoverflow.com/questions/4455195/how-to-avoid-the-need-to-specify-the-wsdl-location-in-a-cxf-or-jax-ws-generated
They modified the URL in the WDSL - and found that the parameter needed to
be passed as :
@WebServiceClient(name = "SalesService", targetNamespace =
"urn:sales.test.au/schema/common", wsdlLocation =
"classpath:src/main/resources/SalesService.wsdl")
...
URL url = null;
WebServiceException e = null;
try {
url = new URL("SalesService.wsdl");
but that also fails for me (in particular on the line url = new
URL("SalesService.wsdl");).
I also wondered if this is relevant:
https://stackoverflow.com/questions/20389255/reading-a-resource-file-from-within-jar
Surely this is not a new issue? What is the solution?
I have tried several "paths" now and am at a loss.
Cheers
AG
--
Sent from: http://cxf.547215.n5.nabble.com/cxf-user-f547216.html
Re: relative path to WSDL in CXF
Posted by Al Grant <bi...@gmail.com>.
I tried :
wsdlLocation = ("file:/Service.wsdl")
wsdlLocation = ("file:Service.wsdl")
wsdlLocation = ("/Service.wsdl")
wsdlLocation = ("Service.wsdl")
Always file not found?
--
Sent from: http://cxf.547215.n5.nabble.com/cxf-user-f547216.html
Re: relative path to WSDL in CXF
Posted by Al Grant <bi...@gmail.com>.
This worked:
@WebServiceClient(name = "SalesService", targetNamespace =
"urn:sales.com.au/schema/common", wsdlLocation =
"file:src/main/resources/SalesService.wsdl")
public class SalesService
extends Service
{
--
Sent from: http://cxf.547215.n5.nabble.com/cxf-user-f547216.html
Re: relative path to WSDL in CXF
Posted by Colm O hEigeartaigh <co...@apache.org>.
Instead of wsdlLocation = "src/main/resources/SalesService.wsdl" try either:
a) wsdlLocation = "SalesService.wsdl"
b) wsdlLocation = "/SalesService.wsdl"
Colm.
On Fri, Feb 2, 2018 at 4:58 AM, Al Grant <bi...@gmail.com> wrote:
> Hello,
>
> is there a way to get a relative path to the WSDL file? This code works:
>
> @WebServiceClient(name = "SalesService", targetNamespace =
> "urn:sales.com.au/schema/common", wsdlLocation =
> "file:/H:/Desktop/cmd/importer/src/main/resources/SalesService.wsdl")
> public class SalesService extends Service {
>
> This code doesn't:
>
> @WebServiceClient(name = "SalesService", targetNamespace =
> "urn:sales.com.au/schema/common", wsdlLocation =
> "src/main/resources/SalesService.wsdl")
> public class SalesService extends Service {
>
> Thanks in advance
>
> Al
>
>
>
>
> --
> Sent from: http://cxf.547215.n5.nabble.com/cxf-user-f547216.html
>
--
Colm O hEigeartaigh
Talend Community Coder
http://coders.talend.com