Re: Webservice client sending null parameters to host

2008-02-12 Thread Mayank Mishra

G'day all,

I faced the same problem using JAXB binding, I debuged it,

The code in method getPara() of DocLiteralInInterceptor class
>>>
parameters.put(part, null);
<<<

puts null parameters in the MessageContentsLists instance.

replacing it with,

<<<
parameters.put(part, dr.read(part, xmlReader));
>>>

results in right behavior.

I may be wrong, but sharing my own experience with you all.

With Regards,
Mayank

Daniel Kulp wrote:
Any chance you can send a sample project that shows the problem?   Kind 
of hard to diagnos this without more details.   What version of CXF?  
Code first/wsdl first?   Can I see the wsdl?  Can you capture the soap 
message?   JAXB/Aegis? etc




Dan

On Friday 08 February 2008, mrsv wrote:
  

I have a cxf webservice and a client generated using wsdl2java. When
the client tries to contact the service the parameters are being null.
I am unable to figure out the reason.Tried including all the jars from
cxf.

Any answers are appreciated.

Thanks





  




Returning List via SOAP

2008-02-12 Thread Tom Davies

I'm using CXF 2.0.3.

I have an interface with a method like:

List getAllReviews(@WebParam(name="token") String  
token);


The WSDL created for this method is:







type="tns:getAllReviewsResponse"/>



type="xs:anyType"/>




and so the generated SOAP client returns List

Is there any way to get a return type of List (the  
ReviewData class generated by wsdl2java that is, not the original  
ReviewData in the remote interface)


Thanks,
  Tom

--
ATLASSIAN - http://www.atlassian.com
Our products help over 8,500 customers in more than 95 countries to  
collaborate








Re: Lazy instantiation of Web Service Client

2008-02-12 Thread rsheldon


Thanks to everyone for their help on this. It turns out that despite some
logging that made me think it was connecting to the web service, CXF
actually doesn't talk to the remote server until it's first used. I double
checked this with wireshark/ethereal.

Thanks again,
Richard

-- 
View this message in context: 
http://www.nabble.com/Lazy-instantiation-of-Web-Service-Client-tp15427056p15446405.html
Sent from the cxf-user mailing list archive at Nabble.com.



Re: Lazy instantiation of Web Service Client

2008-02-12 Thread Ian Roberts

Ian Roberts wrote:
http://johnheintz.blogspot.com/2007/11/using-lazy-proxy-to-avoid-spring.html 



The LazyProxyFactoryBean shown in this post basically allows you to wrap 
up another Spring bean with a proxy that shows the same interface, but 
delays asking for the "real" bean until the first method call.  Using 
this in combination with the lazy-init=true trick above should do what 
you're after.


In fact, it turns out Spring has built-in support for exactly this using 
the AOP ProxyFactoryBean:



  
  





  

  

  

  
  


Ian

--
Ian Roberts   | Department of Computer Science
[EMAIL PROTECTED]  | University of Sheffield, UK


Unable to locate Spring NamespaceHandler.

2008-02-12 Thread ramanand bulusu
Hi ,

I  am  getting the following exception  while deploying the apllication.
i dint understand the root cause for this one. please see the exception
below.

[2008-02-13 01:09:48,573] ERROR
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/mboxservice]

Exception sending context initialized event to listener instance of class
com.vms.mboxservice.listener.ContextListener
org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem: Unable to locate Spring
NamespaceHandler for XML schema namespace [http://cxf.apache.org/jaxws]
Offending resource: class path resource [app-context.xml]
 at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(
FailFastProblemReporter.java:68)

I thought that , it was coming due to the inappropriate
cxf-rt-frontend-jaxws jar file, and i tried
with the 2.0.2 -2.0.3 versions, but there is no use.please give me ur ideas
on this.

i configured  my spring file like  following manner.

http://www.springframework.org/schema/beans";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:jaxws="http://cxf.apache.org/jaxws";
xmlns:http-conf="http://cxf.apache.org/transports/http/configuration";
xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd";>
   




Thanks,


Re: CXF 2.0.3/2.0.4 Build problems with Maven and wsdl2java

2008-02-12 Thread Richard Sheldon
I blew away the 2.0 stuff on our internal shared repo, and in my personal 
repo.  I was able to build 2.0.3 and 2.0.4 without errors, and without the 
additional jaxws-api dependency.

I don't really know where the shared versions on our repo came from. They'd 
been upload by hand a long time ago, as we only recently added the 
repositories that have these jars in them.

Thanks very much for your help. Good job I didn't waste many hours on this :-(

Richard
On Tuesday 12 February 2008 15:04:40 Daniel Kulp wrote:
> My md5 is:
>
> 3bb1b336bec8f94af824b524b2bd515f  jaxws-api-2.0.jar
>
> And there definitely is a WebServiceContext in there.
>
> I just checked:
> http://repo1.maven.org/maven2/javax/xml/ws/jaxws-api/2.0/
>
> And is the same as what I have.   Thus, I'm not sure where you got
> yours.  :-)
>
> Seriously, I would try doing:
>
> rm -rf ~/.m2/repository/javax/xml/ws/jaxws-api
>
> and rebuilding and seeing what it finds and where it finds it.
>
> You're right.  CXF should definitely be pulling in the correct version
> for you, but if there already is a 2.0 version there that is corrupt, it
> won't know that it's corrupt and thus won't re-try grabbing it.  :-(
>
> Dan
>
> On Tuesday 12 February 2008, Richard Sheldon wrote:
> > Daniel,
> >
> > I'm using JDK 5, build 1.5.0_13.
> >
> > If I specify jaxws-api 2.0, I get lots of class not found errors like:
> >
> > java.lang.NoClassDefFoundError: javax/xml/ws/WebServiceContext
> >
> > I checked in the v2.0 jar file in my maven repo, and it doesn't
> > contain this class. I checked the manifest for the jar file, and it
> > says it's specification-version is 2.0.
> >
> > I was actually surprised to have to add any dependency at all, as I
> > didn't see people doing this in the examples, and I thought the CXF
> > poms would have handled it for me (transitive dependencies).
> >
> > Perhaps I have a bad version in my repo? Can you do an md5sum of your
> > 2.0 jar and send it to me (or just send me your 2.0 pom and jar?)
> >
> > Thanks for the help.
> > Richard
> >
> > On Tuesday 12 February 2008 14:29:45 Daniel Kulp wrote:
> > > What version of the JDK are you using?   If you are using JDK 6,
> > > update 4, that's going to be an issue.  (possibly any version of JDK
> > > 6)
> > >
> > > Also, I see:
> > >  
> > >  javax.xml.ws
> > >  jaxws-api
> > >  2.1
> > >  
> > >
> > > That's probably going to be a huge issue and may be the cause of the
> > > issue.   CXF 2.0.x implements the JAX-WS 2.0 API, not the 2.1 API.
> > > (CXF 2.1/trunk is working towards the 2.1 API)
> > >
> > > Dan
> > >
> > > On Tuesday 12 February 2008, rsheldon wrote:
> > > > This is driving me nuts, so hopefully somebody wiser than me can
> > > > enlighten me. Here are the problems I've been having trying to use
> > > > maven/cxf to generate code from a wsdl, then wire up a simple
> > > > client via spring. Different versions of CXF have different
> > > > behaviours/features/bugs:
> > > >
> > > > 2.0.2 - Generates code from WSDL with no error. When starting the
> > > > client I get the following error:
> > > >
> > > > 2008-02-11 10:04:21,316 FATAL
> > > > com.localmatters.ds.controller.search.WWWSearchController - No
> > > > conduit initiator was found for the namespace
> > > > http://schemas.xmlsoap.org/soap/http.
> > > > javax.xml.ws.soap.SOAPFaultException: No conduit initiator was
> > > > found for the namespace http://schemas.xmlsoap.org/soap/http.
> > > > at
> > > > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
> > > >
> > > >:175 )
> > > >
> > > > If I add cxf-rt-transports-http-jetty.jar to my build (maven) then
> > > > it works OK. However, I don't want to do this as I'm using tomcat,
> > > > and don't want this dependency. So, I thought I would upgrade to
> > > > 2.0.3 and see what happens.
> > > >
> > > > 2.0.3 gives me the following error when generating the code from
> > > > wsdl, but stills runs and says it's successful (from maven):
> > > >
> > > > INFO: Refreshing
> > > > [EMAIL PROTECTED]: display
> > > > name [EMAIL PROTECTED];
> > > > startup date [Mon Feb 11 23:57:02 GMT-07:00 2008]; root of context
> > > > hierarchy Feb 11, 2008 11:57:03 PM
> > > > org.springframework.beans.factory.xml.DefaultNamespaceHandlerResol
> > > >ver initHandlerMappings
> > > > WARNING: Ignoring namespace handler
> > > > [org.apache.cxf.jaxws.spring.NamespaceHandler]: problem with
> > > > handler class file or dependent class
> > > > java.lang.IncompatibleClassChangeError: class
> > > > org.apache.cxf.jaxws.EndpointImpl has interface
> > > > javax.xml.ws.Endpoint as super class
> > > > at java.lang.ClassLoader.defineClass1(Native Method)
> > > > at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
> > > > at
> > > > java.security.SecureClassLoader.defineClass(SecureClassLoader.java
> > > >
> > > >:124 ) at
> > > >
> > > > java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at
> >

Re: SOAPMessage after Exception

2008-02-12 Thread Daniel Kulp


Can I get some more information about what you are trying to do?   
Example: where in the processing pipeline are you trying to accomplish 
this?   JAX-WS or other?   Etc

For the most part, the easiest thing to do is just do:
import org.apache.cxf.binding.soap.SoapFault;
.
throw new SoapFault("ErroreProcessamento", SoapFault.FAULT_CODE_SERVER);

That will pretty much work anywhere in the chains (except for in the 
outgoing chains after stuff has already been written, but now much 
anyone can do there if stuff has already been sent) or from your service 
or handlers or anything.



Dan



On Tuesday 12 February 2008, Cencio wrote:
> Hi all,
>
> i have this question: there is a way to generate a SOAPMessage from en
> exception or a fault?
>
> What i have to do when a creation of a fault message fails?
>
> In Axis i do it in this way, that don't raise any exception:
>
> return new org.apache.axis.Message(new
> AxisFault("ErroreProcessamento"));
>
> How can i generate a SOAPMessage with a fault and be sure that it
> don't fail?
>
>
> thx,
> Lorenzo



-- 
J. Daniel Kulp
Principal Engineer, IONA
[EMAIL PROTECTED]
http://www.dankulp.com/blog


Re: Schema DOM memory problem

2008-02-12 Thread Daniel Kulp

Charles,

One of the primary reasons (right now) for keeping the DOM tree around is 
to work around some severe bugs in XmlSchema.   The XmlSchema serializer 
in 1.3.2 loses a bunch of things so the results schemas that you get 
would not be correct.I think all the bugs have been fixed in 
XmlSchema and I've been asking for a new release.  See:
http://mail-archives.apache.org/mod_mbox/ws-commons-dev/200802.mbox/<200802071000.14543.dkulp%40apache.org>
but so far, no luck.   I'd appreciate it if you could also start bugging 
them.   :-)   If we can get a version that can actually round-trip 
schema properly, I'm OK with dropping the DOM. 

That all said, I've also thought about creating a "ShemaManager" to go 
along with the current WSDLManager to cache a lot of this.Just 
haven't gotten around to doing it.   I'd definitely welcome any patches 
that would help us head that direction.   :-)

Dan





On Tuesday 12 February 2008, Charles O'Farrell wrote:
> G'day all,
>
> I have been given the task of generating WSDL from my companies large
> collection of application models, as well as handling the invoking of
> corresponding services which are already deployed. The number of
> possible services numbers in the hundreds, with a handful of large
> (2MB) shared shemas.
>
> When trying to run a small Jetty server with more than one of these
> generated WSDLs I quickly ran out of memory (the default setting - 64M
> I think). While it wouldn't be hard to bump up the memory allocation,
> I feared the final scenario of hundreds of WSDLs would be problematic
> even for large amounts of memory.
>
> To cut a long story short this is what I found:
>
> 1. For each WSDL, every imported schema is loaded into memory,
> regardless of whether it is shared among other WSDLs.
> 2. Every Schema DOM tree is stored in memory after parsing.
>
> Given that the Schema is parsed to the more useful XmlSchema object
> tree, I'm not sure what benefits are gained from keeping it in DOM. I
> fixed the memory bloat by some minor changes in SchemaUtil, which I
> will explain briefly here. Note that reflection was unfortunately
> required in dealing with the XmlSchema library.
>
> 1. Used a static map to update the XmlSchemaCollection parameter with
> any cached Schemas before calling schemaCol.read(schemaElem,
> systemId); in extractSchema
>
> 2. Nulled out cached DOM elements in the following:
>
>- extractSchema() -> xmlSchema.setElement() (well actually I
> stopped it being set)
>- addSchema() -> schema.setElement() after targetNamespace is
>retrieved
>- At the end of getSchemas() iterate any new schemas, get its
>NodeNamespaceContext, call getDeclaredPrefixes() before settings
> its node field to null.
>
> 3. Ignored schemaList from the constructor and instead just relied on
> an internal set to avoid recursion. (I think this map is only needed
> on the WSDL2Java?)
> 4. Fixed WSDLQueryHandler to output full WSDL due to missing schema
> node (I loaded it from the file system instead of serialising the
> Definition object)
>
> I guess my biggest qualm in all this is that it was extremely
> difficult to subclass and spring SchemaUtil to make the required
> changes. In particular I had to reproduce the following invocation
> class chain to fix the problem.
>
> JaxWsServiceFactoryBean -> buildServiceFromWSDL() ->
> WSDLServiceFactory -> create() -> WSDLServiceBuilder -> getSchemas()
> -> SchemaUtil
>
> Because SchemaUtil isn't a sprung object, nor any of the other
> classes, and because most of the methods/fields are private I ended up
> literally copy+pasting each class.
>
> Forgive me if this all sounds like criticism, because I am very
> impressed and happy with CXF. This is just as much a documenting of my
> findings as anything else.
>
> Anyway. I'm not too worried about what happens now but I am curious
> what you guys think of all this.
>
> Cheers,
>
> Charles O'Farrell



-- 
J. Daniel Kulp
Principal Engineer, IONA
[EMAIL PROTECTED]
http://www.dankulp.com/blog


Re: Webservice client sending null parameters to host

2008-02-12 Thread Daniel Kulp

Any chance you can send a sample project that shows the problem?   Kind 
of hard to diagnos this without more details.   What version of CXF?  
Code first/wsdl first?   Can I see the wsdl?  Can you capture the soap 
message?   JAXB/Aegis? etc



Dan

On Friday 08 February 2008, mrsv wrote:
> I have a cxf webservice and a client generated using wsdl2java. When
> the client tries to contact the service the parameters are being null.
> I am unable to figure out the reason.Tried including all the jars from
> cxf.
>
> Any answers are appreciated.
>
> Thanks



-- 
J. Daniel Kulp
Principal Engineer, IONA
[EMAIL PROTECTED]
http://www.dankulp.com/blog


Re: CXF 2.0.3/2.0.4 Build problems with Maven and wsdl2java

2008-02-12 Thread Daniel Kulp


My md5 is:

3bb1b336bec8f94af824b524b2bd515f  jaxws-api-2.0.jar

And there definitely is a WebServiceContext in there. 

I just checked:
http://repo1.maven.org/maven2/javax/xml/ws/jaxws-api/2.0/

And is the same as what I have.   Thus, I'm not sure where you got 
yours.  :-)

Seriously, I would try doing:

rm -rf ~/.m2/repository/javax/xml/ws/jaxws-api

and rebuilding and seeing what it finds and where it finds it.  

You're right.  CXF should definitely be pulling in the correct version 
for you, but if there already is a 2.0 version there that is corrupt, it 
won't know that it's corrupt and thus won't re-try grabbing it.  :-(

Dan



On Tuesday 12 February 2008, Richard Sheldon wrote:
> Daniel,
>
> I'm using JDK 5, build 1.5.0_13.
>
> If I specify jaxws-api 2.0, I get lots of class not found errors like:
>
> java.lang.NoClassDefFoundError: javax/xml/ws/WebServiceContext
>
> I checked in the v2.0 jar file in my maven repo, and it doesn't
> contain this class. I checked the manifest for the jar file, and it
> says it's specification-version is 2.0.
>
> I was actually surprised to have to add any dependency at all, as I
> didn't see people doing this in the examples, and I thought the CXF
> poms would have handled it for me (transitive dependencies).
>
> Perhaps I have a bad version in my repo? Can you do an md5sum of your
> 2.0 jar and send it to me (or just send me your 2.0 pom and jar?)
>
> Thanks for the help.
> Richard
>
> On Tuesday 12 February 2008 14:29:45 Daniel Kulp wrote:
> > What version of the JDK are you using?   If you are using JDK 6,
> > update 4, that's going to be an issue.  (possibly any version of JDK
> > 6)
> >
> > Also, I see:
> >  
> >  javax.xml.ws
> >  jaxws-api
> >  2.1
> >  
> >
> > That's probably going to be a huge issue and may be the cause of the
> > issue.   CXF 2.0.x implements the JAX-WS 2.0 API, not the 2.1 API. 
> > (CXF 2.1/trunk is working towards the 2.1 API)
> >
> > Dan
> >
> > On Tuesday 12 February 2008, rsheldon wrote:
> > > This is driving me nuts, so hopefully somebody wiser than me can
> > > enlighten me. Here are the problems I've been having trying to use
> > > maven/cxf to generate code from a wsdl, then wire up a simple
> > > client via spring. Different versions of CXF have different
> > > behaviours/features/bugs:
> > >
> > > 2.0.2 - Generates code from WSDL with no error. When starting the
> > > client I get the following error:
> > >
> > > 2008-02-11 10:04:21,316 FATAL
> > > com.localmatters.ds.controller.search.WWWSearchController - No
> > > conduit initiator was found for the namespace
> > > http://schemas.xmlsoap.org/soap/http.
> > > javax.xml.ws.soap.SOAPFaultException: No conduit initiator was
> > > found for the namespace http://schemas.xmlsoap.org/soap/http.
> > > at
> > > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java
> > >:175 )
> > >
> > > If I add cxf-rt-transports-http-jetty.jar to my build (maven) then
> > > it works OK. However, I don't want to do this as I'm using tomcat,
> > > and don't want this dependency. So, I thought I would upgrade to
> > > 2.0.3 and see what happens.
> > >
> > > 2.0.3 gives me the following error when generating the code from
> > > wsdl, but stills runs and says it's successful (from maven):
> > >
> > > INFO: Refreshing
> > > [EMAIL PROTECTED]: display
> > > name [EMAIL PROTECTED];
> > > startup date [Mon Feb 11 23:57:02 GMT-07:00 2008]; root of context
> > > hierarchy Feb 11, 2008 11:57:03 PM
> > > org.springframework.beans.factory.xml.DefaultNamespaceHandlerResol
> > >ver initHandlerMappings
> > > WARNING: Ignoring namespace handler
> > > [org.apache.cxf.jaxws.spring.NamespaceHandler]: problem with
> > > handler class file or dependent class
> > > java.lang.IncompatibleClassChangeError: class
> > > org.apache.cxf.jaxws.EndpointImpl has interface
> > > javax.xml.ws.Endpoint as super class
> > > at java.lang.ClassLoader.defineClass1(Native Method)
> > > at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
> > > at
> > > java.security.SecureClassLoader.defineClass(SecureClassLoader.java
> > >:124 ) at
> > > java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at
> > > java.net.URLClassLoader.access$100(URLClassLoader.java:56) at
> > > java.net.URLClassLoader$1.run(URLClassLoader.java:195) at
> > > java.security.AccessController.doPrivileged(Native Method) at
> > > java.net.URLClassLoader.findClass(URLClassLoader.java:188) at
> > > java.lang.ClassLoader.loadClass(ClassLoader.java:306) at
> > > java.lang.ClassLoader.loadClass(ClassLoader.java:251) at
> > > java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at
> > > org.apache.cxf.jaxws.spring.EndpointDefinitionParser.(Endpoi
> > >ntDe finitionParser.java:50) at
> > > org.apache.cxf.jaxws.spring.NamespaceHandler.init(NamespaceHandler
> > >.jav a:29)
> > >
> > > As maven completed successfullly (it said so at least, despite the
> > > error

Re: CXF 2.0.3/2.0.4 Build problems with Maven and wsdl2java

2008-02-12 Thread Richard Sheldon
Daniel,

I'm using JDK 5, build 1.5.0_13.

If I specify jaxws-api 2.0, I get lots of class not found errors like:

java.lang.NoClassDefFoundError: javax/xml/ws/WebServiceContext

I checked in the v2.0 jar file in my maven repo, and it doesn't contain this 
class. I checked the manifest for the jar file, and it says it's 
specification-version is 2.0.

I was actually surprised to have to add any dependency at all, as I didn't see 
people doing this in the examples, and I thought the CXF poms would have 
handled it for me (transitive dependencies).

Perhaps I have a bad version in my repo? Can you do an md5sum of your 2.0 jar 
and send it to me (or just send me your 2.0 pom and jar?)

Thanks for the help.
Richard

On Tuesday 12 February 2008 14:29:45 Daniel Kulp wrote:
> What version of the JDK are you using?   If you are using JDK 6, update
> 4, that's going to be an issue.  (possibly any version of JDK 6)
>
> Also, I see:
>  
>  javax.xml.ws
>  jaxws-api
>  2.1
>  
>
> That's probably going to be a huge issue and may be the cause of the
> issue.   CXF 2.0.x implements the JAX-WS 2.0 API, not the 2.1 API.  (CXF
> 2.1/trunk is working towards the 2.1 API)
>
> Dan
>
> On Tuesday 12 February 2008, rsheldon wrote:
> > This is driving me nuts, so hopefully somebody wiser than me can
> > enlighten me. Here are the problems I've been having trying to use
> > maven/cxf to generate code from a wsdl, then wire up a simple client
> > via spring. Different versions of CXF have different
> > behaviours/features/bugs:
> >
> > 2.0.2 - Generates code from WSDL with no error. When starting the
> > client I get the following error:
> >
> > 2008-02-11 10:04:21,316 FATAL
> > com.localmatters.ds.controller.search.WWWSearchController - No conduit
> > initiator was found for the namespace
> > http://schemas.xmlsoap.org/soap/http.
> > javax.xml.ws.soap.SOAPFaultException: No conduit initiator was found
> > for the namespace http://schemas.xmlsoap.org/soap/http.
> > at
> > org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:175
> >)
> >
> > If I add cxf-rt-transports-http-jetty.jar to my build (maven) then it
> > works OK. However, I don't want to do this as I'm using tomcat, and
> > don't want this dependency. So, I thought I would upgrade to 2.0.3 and
> > see what happens.
> >
> > 2.0.3 gives me the following error when generating the code from wsdl,
> > but stills runs and says it's successful (from maven):
> >
> > INFO: Refreshing
> > [EMAIL PROTECTED]: display name
> > [EMAIL PROTECTED]; startup
> > date [Mon Feb 11 23:57:02 GMT-07:00 2008]; root of context hierarchy
> > Feb 11, 2008 11:57:03 PM
> > org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver
> > initHandlerMappings
> > WARNING: Ignoring namespace handler
> > [org.apache.cxf.jaxws.spring.NamespaceHandler]: problem with handler
> > class file or dependent class
> > java.lang.IncompatibleClassChangeError: class
> > org.apache.cxf.jaxws.EndpointImpl has interface javax.xml.ws.Endpoint
> > as super class
> > at java.lang.ClassLoader.defineClass1(Native Method)
> > at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
> > at
> > java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124
> >) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at
> > java.net.URLClassLoader.access$100(URLClassLoader.java:56) at
> > java.net.URLClassLoader$1.run(URLClassLoader.java:195) at
> > java.security.AccessController.doPrivileged(Native Method) at
> > java.net.URLClassLoader.findClass(URLClassLoader.java:188) at
> > java.lang.ClassLoader.loadClass(ClassLoader.java:306) at
> > java.lang.ClassLoader.loadClass(ClassLoader.java:251) at
> > java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at
> > org.apache.cxf.jaxws.spring.EndpointDefinitionParser.(EndpointDe
> >finitionParser.java:50) at
> > org.apache.cxf.jaxws.spring.NamespaceHandler.init(NamespaceHandler.jav
> >a:29)
> >
> > As maven completed successfullly (it said so at least, despite the
> > errors), I tried it in my application and it seems to work.
> >
> > 2.0.4 - I decided to try 2.0.4 out to see if it gave me the same
> > errors generating code as 2.0.3. It DID, but this time the maven build
> > fails with this cryptic message:
> > [INFO]
> > --
> >-- [ERROR] BUILD ERROR
> > [INFO]
> > --
> >-- [INFO] javax/xml/ws/RequestWrapper
> >
> >
> > So I'm at a loss really. Am I missing some dependency, or have a wrong
> > version of a library? I'd like to be using 2.0.4 if possible, but I
> > can't even get the client generated code to compile! I've attached the
> > relevant parts of the pom below, in case somebody can see any stupid
> > mistakes.
> >
> > Thanks a lot, hope somebody can help this CXF newbie. I've been
> > surfing the web for most o

Re: Lazy instantiation of Web Service Client

2008-02-12 Thread Ian Roberts

Daniel Kulp wrote:

Can you just use the lazy-init="true" stuff built into spring?

lazy-init="true"

   class="my.web.service.AccountService"
   factory-bean="accountProxyFactory" factory-method="create"/>


That would work if the application code gets the proxy from the spring 
context by name using getBean(), but if the proxy is injected into 
another bean by spring then it won't make much difference - it'll still 
have to be initialized before it can be injected.  But this might help:


http://johnheintz.blogspot.com/2007/11/using-lazy-proxy-to-avoid-spring.html

The LazyProxyFactoryBean shown in this post basically allows you to wrap 
up another Spring bean with a proxy that shows the same interface, but 
delays asking for the "real" bean until the first method call.  Using 
this in combination with the lazy-init=true trick above should do what 
you're after.


Ian

--
Ian Roberts   | Department of Computer Science
[EMAIL PROTECTED]  | University of Sheffield, UK


Re: Lazy instantiation of Web Service Client

2008-02-12 Thread Daniel Kulp

Can you just use the lazy-init="true" stuff built into spring?

 


Dan


On Tuesday 12 February 2008, rsheldon wrote:
> I've just started using CXF with Spring. I'm only using it to create
> SOAP WS clients (code generated from WSDL using CXF maven tools).
>
> I'd like to be able to have the services not connect on startup, but
> wait until they are first used - ie. lazy instantiation. Can this be
> done in CXF? Here's my very simple client configuration:
>
>  class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
>value="my.web.service.AccountService"/>  value="${account.service}"/>
> 
>
>factory-bean="accountProxyFactory" factory-method="create"/>
>
> I can't see any attribute I can set on JaxWsProxyFactoryBean or it's
> parent ClientProxyFactoryBean that looks like it would work. There is
> a "properties" property, but I can't find a reference to the valid
> properties/values I can put into this map.
>
> Can anyone help?? Is there an attribute or property I can set to
> prevent immediate creation of the service?
>
> Many thanks,
> Richard
>
> Thanks
> Richard



-- 
J. Daniel Kulp
Principal Engineer, IONA
[EMAIL PROTECTED]
http://www.dankulp.com/blog


Re: CXF 2.0.3/2.0.4 Build problems with Maven and wsdl2java

2008-02-12 Thread Daniel Kulp

What version of the JDK are you using?   If you are using JDK 6, update 
4, that's going to be an issue.  (possibly any version of JDK 6)

Also, I see:
 
 javax.xml.ws
 jaxws-api
 2.1
 

That's probably going to be a huge issue and may be the cause of the 
issue.   CXF 2.0.x implements the JAX-WS 2.0 API, not the 2.1 API.  (CXF 
2.1/trunk is working towards the 2.1 API)

Dan



On Tuesday 12 February 2008, rsheldon wrote:
> This is driving me nuts, so hopefully somebody wiser than me can
> enlighten me. Here are the problems I've been having trying to use
> maven/cxf to generate code from a wsdl, then wire up a simple client
> via spring. Different versions of CXF have different
> behaviours/features/bugs:
>
> 2.0.2 - Generates code from WSDL with no error. When starting the
> client I get the following error:
>
> 2008-02-11 10:04:21,316 FATAL
> com.localmatters.ds.controller.search.WWWSearchController - No conduit
> initiator was found for the namespace
> http://schemas.xmlsoap.org/soap/http.
> javax.xml.ws.soap.SOAPFaultException: No conduit initiator was found
> for the namespace http://schemas.xmlsoap.org/soap/http.
> at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:175
>)
>
> If I add cxf-rt-transports-http-jetty.jar to my build (maven) then it
> works OK. However, I don't want to do this as I'm using tomcat, and
> don't want this dependency. So, I thought I would upgrade to 2.0.3 and
> see what happens.
>
> 2.0.3 gives me the following error when generating the code from wsdl,
> but stills runs and says it's successful (from maven):
>
> INFO: Refreshing
> [EMAIL PROTECTED]: display name
> [EMAIL PROTECTED]; startup
> date [Mon Feb 11 23:57:02 GMT-07:00 2008]; root of context hierarchy
> Feb 11, 2008 11:57:03 PM
> org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver
> initHandlerMappings
> WARNING: Ignoring namespace handler
> [org.apache.cxf.jaxws.spring.NamespaceHandler]: problem with handler
> class file or dependent class
> java.lang.IncompatibleClassChangeError: class
> org.apache.cxf.jaxws.EndpointImpl has interface javax.xml.ws.Endpoint
> as super class
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
> at
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124
>) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at
> java.net.URLClassLoader.access$100(URLClassLoader.java:56) at
> java.net.URLClassLoader$1.run(URLClassLoader.java:195) at
> java.security.AccessController.doPrivileged(Native Method) at
> java.net.URLClassLoader.findClass(URLClassLoader.java:188) at
> java.lang.ClassLoader.loadClass(ClassLoader.java:306) at
> java.lang.ClassLoader.loadClass(ClassLoader.java:251) at
> java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at
> org.apache.cxf.jaxws.spring.EndpointDefinitionParser.(EndpointDe
>finitionParser.java:50) at
> org.apache.cxf.jaxws.spring.NamespaceHandler.init(NamespaceHandler.jav
>a:29)
>
> As maven completed successfullly (it said so at least, despite the
> errors), I tried it in my application and it seems to work.
>
> 2.0.4 - I decided to try 2.0.4 out to see if it gave me the same
> errors generating code as 2.0.3. It DID, but this time the maven build
> fails with this cryptic message:
> [INFO]
> --
>-- [ERROR] BUILD ERROR
> [INFO]
> --
>-- [INFO] javax/xml/ws/RequestWrapper
>
>
> So I'm at a loss really. Am I missing some dependency, or have a wrong
> version of a library? I'd like to be using 2.0.4 if possible, but I
> can't even get the client generated code to compile! I've attached the
> relevant parts of the pom below, in case somebody can see any stupid
> mistakes.
>
> Thanks a lot, hope somebody can help this CXF newbie. I've been
> surfing the web for most of the day trying to work around these
> different issues.
>
> Richard
>
> 
> 
> org.apache.cxf
> cxf-rt-frontend-jaxws
> 2.0.4-incubator
> 
> 
> org.apache.cxf
> cxf-rt-transports-http
> 2.0.4-incubator
> 
> 
> 
> javax.xml.ws
> jaxws-api
> 2.1
> 
> 
> 
> 
> 
> org.apache.cxf
> cxf-codegen-plugin
> 2.0.4-incubator
> 
> 
> generate-sources
> generate-sources
> 
>
> ${basedir}/target/generated/src/main/java
> 
> 
>
> ${basedir}/src/main/wsdl/AccountService.wsdl
> 
> 
> 
>  

Re: message context is null

2008-02-12 Thread Daniel Kulp

Yep.   That would do it.   The creation of the JAXWS WebServiceContext is 
taken care of in the JAXWSMethodInvoker.  I'm not sure what your 
custom invoker was doing, but possibly subclassing JAXWSMethodInvoker 
might make it work.   In anycase, I'd be more than happy to refactor the 
JAXWSMethodInvoker a little bit to make subclassing it easier to get it 
to work.   If you have suggestions (or better yet: a patch) feel free to 
post them here or in JIRA. 

Dan



On Tuesday 12 February 2008, Mayank Thakore wrote:
> Found the panga. Seems my custom invoker was eating up the context.
> Works like a charm after removing the custom invoker.
>
> Regards
> Mayank
>
> -Original Message-
> From: Mayank Thakore [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, February 12, 2008 14:04
> To: cxf-user@incubator.apache.org
> Subject: message context is null
>
> Hi,
>
> I inject the context into my service impl like this:
>
>   @Resource
>   private WebServiceContext context;
>
> The context is available during invocation, but when I do:
>
>   MessageContext messageContext = context.getMessageContext();
>
> The messageContext comes up null in Solaris. In Windows it comes fine.
>
> What am I doing wrong?
>
> Mayank
>  
> **
>** 
>  This e-mail and attachments contain confidential information from
> HUAWEI, which is intended only for the person or entity whose address
> is listed above. Any use of the information contained herein in any
> way (including, but not limited to, total or partial disclosure,
> reproduction, or dissemination) by persons other than the intended
> recipient's) is prohibited. If you receive this e-mail in error,
> please notify the sender by phone or email immediately and delete it!



-- 
J. Daniel Kulp
Principal Engineer, IONA
[EMAIL PROTECTED]
http://www.dankulp.com/blog


Re: cxf-codegen-plugin plugin problem

2008-02-12 Thread ramanand bulusu
 using  pluginrepository , it was working fine at morning . but, currently i
am getting following problem with that.

GroupId: org.apache.maven.plugins
ArtifactId: maven-plugins
Version: 2-SNAPSHOT

Reason: Unable to download the artifact from any repository

org.apache.maven.plugins:maven-plugins:pom:2-SNAPSHOT

from the specified remote repositories:
central (http://repo1.maven.org/maven2),
CISNAPSHOTS (http://ci.vmsinfo.com:8082/archiva/repository/snapshots/),
apache-plugin-incubating (
http://people.apache.org/repo/m2-incubating-repository/),
CI (http://ci.vmsinfo.com/m2),
CXF (http://people.apache.org/repo/m2-snapshot-repository)

any how, thanks for ur reply.



On Feb 11, 2008 9:56 PM, DSL <[EMAIL PROTECTED]> wrote:

> Are you using  ?
>
>
> On Feb 11, 2008 11:10 AM, ramanand bulusu <[EMAIL PROTECTED]>
> wrote:
> > Hi,
> >
> > i am tying to generate  source files using cxf-codegen-plugin.referringto
> > http://cwiki.apache.org/CXF20DOC/maven-integration-and-plugin.html.
> >
> > i  added the cxf-codegen-plugin  plugin  in my pom.while taking the
> build
> > i  am getting  following exception.
> >
> > http://cwiki.apache.org/CXF20DOC/maven-integration-and-plugin.html
> > -
> > [INFO] Failed to resolve artifact.
> > GroupId: org.apache.cxf
> > ArtifactId: cxf-codegen-plugin
> > Version: 2.1-incubator
> > Reason: Unable to download the artifact from any repository
> >  org.apache.cxf:cxf-codegen-plugin:pom:2.1-incubator
> > ---
> >
> > after  giving the version 2.1-incubator-SNAPSHOT also
> > getting similar exception. what was the wrong , i did ?.please help me .
> >
> > i  am pointing to
> > http://people.apache.org/repo/m2-snapshot-repository
> > repository.
> >
> >
> > thanks ,
> > -bulusu
> >
>


Re: saml holder of key and CXF

2008-02-12 Thread Fred Dushin
I'm pretty sure WSS4J does not support processing of SAML  
SubjectConfirmation methods, but I'd be happy to be corrected on this.


The ultimate arbiter would be in:

http://svn.apache.org/repos/asf/webservices/wss4j/trunk/src/org/apache/ws/security/processor/SAMLTokenProcessor.java

but this class appears to be nothing more than a DOM -> OpenSAML  
parser.  You're better off (IMO) implementing this functionality in an  
interceptor, and using JAX-B generated types.  The SAML schema  
compiles OOTB in CXF, BTW.


There is some client-side (well, sending-side) processing, wherein a  
SAML Assertion can be generated using the holder-of-key confirmation  
method:


http://svn.apache.org/repos/asf/webservices/wss4j/trunk/src/org/apache/ws/security/action/SAMLTokenSignedAction.java

but this may have limited applicability to your scenario.

-Fred

On Feb 12, 2008, at 8:12 AM, Benjamin Coiffe wrote:


Hi there,



Does anybody have a sample demoing the use of SAML Hok, WSS4J and CXF?

Any help appreciated!

I have a code snippet at the end of this email but it keeps throwing  
the

same exception:



12-Feb-2008 13:04:40
org.apache.cxf.endpoint.dynamic.DynamicClientFactory outputDebug

INFO: Created classes: com.chemspider.ArrayOfString,
com.chemspider.GetCompoundDetails,
com.chemspider.GetCompoundDetailsResponse,  
com.chemspider.GetDatabases,

com.chemspider.GetDatabasesResponse, com.chemspider.ObjectFactory,
com.chemspider.SearchByFormula, com.chemspider.SearchByFormula2,
com.chemspider.SearchByFormula2Response,
com.chemspider.SearchByFormulaResponse, com.chemspider.SearchByMass,
com.chemspider.SearchByMass2, com.chemspider.SearchByMass2Response,
com.chemspider.SearchByMassResponse

log4j:WARN No appenders could be found for logger
(org.apache.xml.security.Init).

log4j:WARN Please initialize the log4j system properly.

java.lang.ClassCastException:
com.sun.org.apache.xerces.internal.dom.DocumentImpl

 at
com 
.sun.xml.messaging.saaj.soap.impl.ElementImpl.getOwnerDocument(Elemen

tImpl.java:104)

 at
com 
.sun.org.apache.xerces.internal.dom.ParentNode.internalInsertBefore(P

arentNode.java:388)

 at
com 
.sun.org.apache.xerces.internal.dom.ParentNode.insertBefore(ParentNod

e.java:321)

 at
com 
.sun.org.apache.xerces.internal.dom.NodeImpl.appendChild(NodeImpl.jav

a:275)

 at org.opensaml.SAMLSubject.toDOM(Unknown Source)

 at org.opensaml.SAMLSubjectStatement.toDOM(Unknown Source)

 at org.opensaml.SAMLAuthenticationStatement.toDOM(Unknown Source)

 at org.opensaml.SAMLAssertion.toDOM(Unknown Source)

 at org.opensaml.SAMLObject.toDOM(Unknown Source)

 at org.opensaml.SAMLSignedObject.toDOM(Unknown Source)

 at org.opensaml.SAMLObject.toDOM(Unknown Source)

 at org.opensaml.SAMLSignedObject.sign(Unknown Source)

 at org.opensaml.SAMLSignedObject.sign(Unknown Source)

 at
org 
.apache.ws.security.saml.SAMLIssuerImpl.newAssertion(SAMLIssuerImpl.j

ava:193)

 at
org 
.apache.ws.security.action.SAMLTokenSignedAction.execute(SAMLTokenSig

nedAction.java:55)

 at
org 
.apache.ws.security.handler.WSHandler.doSenderAction(WSHandler.java:1

92)

 at
org 
.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor.handleMessage(WSS4J

OutInterceptor.java:169)

 at
org 
.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor.handleMessage(WSS4J

OutInterceptor.java:43)

 at
org 
.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC

hain.java:208)

 at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:276)

 at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:222)

 at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:180)

 at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:200)

 at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:186)

 at Test.testSAMLSignedHoK(Test.java:103)

 at Test.main(Test.java:129)



public static void testSAMLSignedHoK(){

   CXFBusFactory busFactory = new  CXFBusFactory();

  DynamicClientFactory f =
DynamicClientFactory.newInstance(busFactory.createBus());

  Client client =
f.createClient("http://www.chemspider.com/massspecapi.asmx?WSDL";);

   client.getOutInterceptors().add(new
org.apache.cxf.interceptor.LoggingOutInterceptor());

   client.getInInterceptors().add(new
org.apache.cxf.interceptor.LoggingInInterceptor());

   Map configuration = new
HashMap();






configuration 
.put(WSHandlerConstants.SAML_PROP_FILE,"saml2.properties");



configuration 
.put(WSHandlerConstants.ACTION,WSHandlerConstants.SAML_TOKE

N_SIGNED );





   configuration.put(WSHandlerConstants.SIG_PROP_REF_ID,
"C:/eclipse3.2.1/workspace/Kensington.SILVER/plugins/ 
webservicestudio/te

st/security/certs/clientKS.jks");

   configuration.put(WSHandlerConstants.PW_CALLBACK_REF, new
CallbackHandler(){



 public void handle(Callback[] callbacks) throws
IOException,


Re: Lazy instantiation of Web Service Client

2008-02-12 Thread rsheldon

Thanks for your quick response. I took a look at the link you posted, and
actually didn't gain much insight from it. Can you please clarify what you
wrote a little bit more:

I am not specifying a link to the wsdl in my bean. I wasn't clear whether
you were saying I should add this property to get this to not initiate on
startup, or that I shouldn't add it. 

Thanks
Richard



willem.jiang wrote:
> 
> Hi Richard
> Hi
> 
> For the client instantiation, it just need to create the service 
> model[1] first.
> 
>  If you add the wsdlLocation attribute in your SEI's WebService 
> annotation or specify the wsdlLocation property for the 
> JaxWsProxyFactoryBean with your service endpoint's address, the client 
> will hit the service before you call the proxy's operation.
> 
> Otherwise the client will not access service endpoint the before your 
> start to call the proxy's operation.
> 
> [1]http://cwiki.apache.org/CXF20DOC/cxf-architecture.html#CXFArchitecture-TheServiceModel
> 
> Willem
> 
> rsheldon wrote:
>> I've just started using CXF with Spring. I'm only using it to create SOAP
>> WS
>> clients (code generated from WSDL using CXF maven tools). 
>>
>> I'd like to be able to have the services not connect on startup, but wait
>> until they are first used - ie. lazy instantiation. Can this be done in
>> CXF?
>> Here's my very simple client configuration:
>>
>> > class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
>>   > value="my.web.service.AccountService"/>
>>   
>> 
>>
>> >   factory-bean="accountProxyFactory" factory-method="create"/>
>>
>> I can't see any attribute I can set on JaxWsProxyFactoryBean or it's
>> parent
>> ClientProxyFactoryBean that looks like it would work. There is a
>> "properties" property, but I can't find a reference to the valid
>> properties/values I can put into this map. 
>>
>> Can anyone help?? Is there an attribute or property I can set to prevent
>> immediate creation of the service?  
>>
>> Many thanks,
>> Richard
>>
>> Thanks
>> Richard
>>   
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Lazy-instantiation-of-Web-Service-Client-tp15427056p15434534.html
Sent from the cxf-user mailing list archive at Nabble.com.



Re: Lazy instantiation of Web Service Client

2008-02-12 Thread Willem Jiang

Hi Richard
Hi

For the client instantiation, it just need to create the service 
model[1] first.


If you add the wsdlLocation attribute in your SEI's WebService 
annotation or specify the wsdlLocation property for the 
JaxWsProxyFactoryBean with your service endpoint's address, the client 
will hit the service before you call the proxy's operation.


Otherwise the client will not access service endpoint the before your 
start to call the proxy's operation.


[1]http://cwiki.apache.org/CXF20DOC/cxf-architecture.html#CXFArchitecture-TheServiceModel

Willem

rsheldon wrote:

I've just started using CXF with Spring. I'm only using it to create SOAP WS
clients (code generated from WSDL using CXF maven tools). 


I'd like to be able to have the services not connect on startup, but wait
until they are first used - ie. lazy instantiation. Can this be done in CXF?
Here's my very simple client configuration:


  
  




I can't see any attribute I can set on JaxWsProxyFactoryBean or it's parent
ClientProxyFactoryBean that looks like it would work. There is a
"properties" property, but I can't find a reference to the valid
properties/values I can put into this map. 


Can anyone help?? Is there an attribute or property I can set to prevent
immediate creation of the service?  


Many thanks,
Richard

Thanks
Richard
  




How to specify XSD for WSDL definition

2008-02-12 Thread dhoffer

I am new to CXF and have a few questions.  I have used XFire before with good
success, however this is a different use case and I'm not sure how to
proceed.

I want to create a web-service with a couple of simple methods where each of
them have either a input or output that is a type defined by XSD and
generated by JAXB 2.1 (lets call it JAXBGeneratedClass).  That is, I have a
jar with a JAXB generated type (JAXBGeneratedClass) that I want to pass
through the web-service/wsdl.  (JAXBGeneratedClass was generated with JAXB
2.1 and has annotations, I don't know if either is a problem as CXF, I
think, is using JAXB 2.0.)  For the other parameters in the web-service API
I don't really care how they are marshaled because they are not later
validating against an XSD.  Another way of stating this is 'how do you pass
data through a web-service that will be later validating against an XSD on
the server?'  (Note that I don't want to pass raw XML through the API
because then the clients would not have a typesafe data-bound API to work
with.)

Per the web site docs I did setup a web-service class/interface using
@WebService annotations and fired it up using the Jetty HTTP server, all is
running but I have the following questions/problems.  (I am using the maven
build/configuration approach.)

1. It seems wrong that I am letting CXF 'figure out' how to
marshal/data-bind JAXBGeneratedClass.  It seems that it would be better to
use the schema that generated JAXBGeneratedClass as part of the definition
of the WSDL (where-ever in the API it uses JAXBGeneratedClass I should use
the schema).  What I am trying to do here is not only create a 'service' API
but also I want to create client proxies in several languages, C++, Java,
NET, etc and it is important that they all be generated such that when the
data is passed to the web-service it is valid per the schema used to
generate JAXBGeneratedClass.  (Currently, it seems, that CXF does not know
about my original XSD rather it is figuring out how to marshal something
that was JAXB generated from my schema.)

2.  How do I make sure that in all the client languages, the data is
validated on the client.  That is, I don't want them to guess what is
required and what is optional (as specified in the schema) and only find out
when the web-service API fails.  Either the client generated code has to be
generated such that instances cannot be created that are invalid or schema
validation has to occur on the client as well.  With JAXB, for instance, it
just generates java beans with no validation; one doesn't know if the
content is correct until it is saved to XML with validation.  This would not
work, it seems, because the client would never be 'saving' thus never be
validating.

I will try to generate a java client using CXF and see what it generates. 
If anyone can point me in the right direction on how to do this it would be
much appreciated.

-Dave
-- 
View this message in context: 
http://www.nabble.com/How-to-specify-XSD-for-WSDL-definition-tp15433648p15433648.html
Sent from the cxf-user mailing list archive at Nabble.com.



Re: From byte[] to SOAPElement

2008-02-12 Thread Cencio

Solved :)

Thx anyway!



Cencio wrote:
> 
> Hi all,
> 
> i have this problem... convert a byte array into a SOAPElement... 
> 
> i try passing by Document, but i fail :)
> 
> Any idea?
> 

-- 
View this message in context: 
http://www.nabble.com/From-byte---to-SOAPElement-tp15429291p15433259.html
Sent from the cxf-user mailing list archive at Nabble.com.



saml holder of key and CXF

2008-02-12 Thread Benjamin Coiffe
Hi there,

 

Does anybody have a sample demoing the use of SAML Hok, WSS4J and CXF?

Any help appreciated!

I have a code snippet at the end of this email but it keeps throwing the
same exception:

 

12-Feb-2008 13:04:40
org.apache.cxf.endpoint.dynamic.DynamicClientFactory outputDebug

INFO: Created classes: com.chemspider.ArrayOfString,
com.chemspider.GetCompoundDetails,
com.chemspider.GetCompoundDetailsResponse, com.chemspider.GetDatabases,
com.chemspider.GetDatabasesResponse, com.chemspider.ObjectFactory,
com.chemspider.SearchByFormula, com.chemspider.SearchByFormula2,
com.chemspider.SearchByFormula2Response,
com.chemspider.SearchByFormulaResponse, com.chemspider.SearchByMass,
com.chemspider.SearchByMass2, com.chemspider.SearchByMass2Response,
com.chemspider.SearchByMassResponse

log4j:WARN No appenders could be found for logger
(org.apache.xml.security.Init).

log4j:WARN Please initialize the log4j system properly.

java.lang.ClassCastException:
com.sun.org.apache.xerces.internal.dom.DocumentImpl

  at
com.sun.xml.messaging.saaj.soap.impl.ElementImpl.getOwnerDocument(Elemen
tImpl.java:104)

  at
com.sun.org.apache.xerces.internal.dom.ParentNode.internalInsertBefore(P
arentNode.java:388)

  at
com.sun.org.apache.xerces.internal.dom.ParentNode.insertBefore(ParentNod
e.java:321)

  at
com.sun.org.apache.xerces.internal.dom.NodeImpl.appendChild(NodeImpl.jav
a:275)

  at org.opensaml.SAMLSubject.toDOM(Unknown Source)

  at org.opensaml.SAMLSubjectStatement.toDOM(Unknown Source)

  at org.opensaml.SAMLAuthenticationStatement.toDOM(Unknown Source)

  at org.opensaml.SAMLAssertion.toDOM(Unknown Source)

  at org.opensaml.SAMLObject.toDOM(Unknown Source)

  at org.opensaml.SAMLSignedObject.toDOM(Unknown Source)

  at org.opensaml.SAMLObject.toDOM(Unknown Source)

  at org.opensaml.SAMLSignedObject.sign(Unknown Source)

  at org.opensaml.SAMLSignedObject.sign(Unknown Source)

  at
org.apache.ws.security.saml.SAMLIssuerImpl.newAssertion(SAMLIssuerImpl.j
ava:193)

  at
org.apache.ws.security.action.SAMLTokenSignedAction.execute(SAMLTokenSig
nedAction.java:55)

  at
org.apache.ws.security.handler.WSHandler.doSenderAction(WSHandler.java:1
92)

  at
org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor.handleMessage(WSS4J
OutInterceptor.java:169)

  at
org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor.handleMessage(WSS4J
OutInterceptor.java:43)

  at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorC
hain.java:208)

  at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:276)

  at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:222)

  at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:180)

  at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:200)

  at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:186)

  at Test.testSAMLSignedHoK(Test.java:103)

  at Test.main(Test.java:129)

 

public static void testSAMLSignedHoK(){

CXFBusFactory busFactory = new  CXFBusFactory(); 

   DynamicClientFactory f =
DynamicClientFactory.newInstance(busFactory.createBus());

   Client client =
f.createClient("http://www.chemspider.com/massspecapi.asmx?WSDL";);

client.getOutInterceptors().add(new
org.apache.cxf.interceptor.LoggingOutInterceptor());

client.getInInterceptors().add(new
org.apache.cxf.interceptor.LoggingInInterceptor());

Map configuration = new
HashMap();





 
configuration.put(WSHandlerConstants.SAML_PROP_FILE,"saml2.properties");

 
configuration.put(WSHandlerConstants.ACTION,WSHandlerConstants.SAML_TOKE
N_SIGNED );





configuration.put(WSHandlerConstants.SIG_PROP_REF_ID,
"C:/eclipse3.2.1/workspace/Kensington.SILVER/plugins/webservicestudio/te
st/security/certs/clientKS.jks");

configuration.put(WSHandlerConstants.PW_CALLBACK_REF, new
CallbackHandler(){

 

  public void handle(Callback[] callbacks) throws
IOException,

  UnsupportedCallbackException {

WSPasswordCallback pc = (WSPasswordCallback)
callbacks[0];

  pc.setPassword("change_on_install");



  }});

//configuration.put(WSHandlerConstants.SIG_KEY_ID,
"DirectReference");

Properties properties = new Properties();

 
properties.put("org.apache.ws.security.crypto.provider","org.apache.ws.s
ecurity.components.crypto.Merlin");

 
properties.put("org.apache.ws.security.crypto.merlin.keystore.type","JKS
");

 
properties.put("org.apache.ws.security.crypto.merlin.keystore.password",
"password");

 
properties.put("org.apache.ws.security.crypto.merlin.file","C:/eclipse3.
2.1/workspace/Kensington.SILVER/plugins/webservicestudio/test/security/c
erts/clientKS.jks");

 
configuration.put("C:/eclipse3.2.1/wo

RE: message context is null

2008-02-12 Thread Mayank Thakore
Found the panga. Seems my custom invoker was eating up the context. Works
like a charm after removing the custom invoker.

Regards
Mayank

-Original Message-
From: Mayank Thakore [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, February 12, 2008 14:04
To: cxf-user@incubator.apache.org
Subject: message context is null

Hi,

I inject the context into my service impl like this:

@Resource
private WebServiceContext context;

The context is available during invocation, but when I do:

MessageContext messageContext = context.getMessageContext();

The messageContext comes up null in Solaris. In Windows it comes fine.

What am I doing wrong?

Mayank
 


 This e-mail and attachments contain confidential information from HUAWEI,
which is intended only for the person or entity whose address is listed
above. Any use of the information contained herein in any way (including,
but not limited to, total or partial disclosure, reproduction, or
dissemination) by persons other than the intended recipient's) is
prohibited. If you receive this e-mail in error, please notify the sender by
phone or email immediately and delete it!







Schema DOM memory problem

2008-02-12 Thread Charles O'Farrell
G'day all,

I have been given the task of generating WSDL from my companies large
collection of application models, as well as handling the invoking of
corresponding services which are already deployed. The number of possible
services numbers in the hundreds, with a handful of large (2MB) shared
shemas.

When trying to run a small Jetty server with more than one of these
generated WSDLs I quickly ran out of memory (the default setting - 64M I
think). While it wouldn't be hard to bump up the memory allocation, I feared
the final scenario of hundreds of WSDLs would be problematic even for large
amounts of memory.

To cut a long story short this is what I found:

1. For each WSDL, every imported schema is loaded into memory, regardless of
whether it is shared among other WSDLs.
2. Every Schema DOM tree is stored in memory after parsing.

Given that the Schema is parsed to the more useful XmlSchema object tree,
I'm not sure what benefits are gained from keeping it in DOM. I fixed the
memory bloat by some minor changes in SchemaUtil, which I will explain
briefly here. Note that reflection was unfortunately required in dealing
with the XmlSchema library.

1. Used a static map to update the XmlSchemaCollection parameter with any
cached Schemas before calling schemaCol.read(schemaElem, systemId); in
extractSchema

2. Nulled out cached DOM elements in the following:

   - extractSchema() -> xmlSchema.setElement() (well actually I stopped
   it being set)
   - addSchema() -> schema.setElement() after targetNamespace is
   retrieved
   - At the end of getSchemas() iterate any new schemas, get its
   NodeNamespaceContext, call getDeclaredPrefixes() before settings its node
   field to null.

3. Ignored schemaList from the constructor and instead just relied on an
internal set to avoid recursion. (I think this map is only needed on the
WSDL2Java?)
4. Fixed WSDLQueryHandler to output full WSDL due to missing schema node (I
loaded it from the file system instead of serialising the Definition object)

I guess my biggest qualm in all this is that it was extremely difficult to
subclass and spring SchemaUtil to make the required changes. In particular I
had to reproduce the following invocation class chain to fix the problem.

JaxWsServiceFactoryBean -> buildServiceFromWSDL() -> WSDLServiceFactory ->
create() -> WSDLServiceBuilder -> getSchemas() -> SchemaUtil

Because SchemaUtil isn't a sprung object, nor any of the other classes, and
because most of the methods/fields are private I ended up literally
copy+pasting each class.

Forgive me if this all sounds like criticism, because I am very impressed
and happy with CXF. This is just as much a documenting of my findings as
anything else.

Anyway. I'm not too worried about what happens now but I am curious what you
guys think of all this.

Cheers,

Charles O'Farrell


SOAPMessage after Exception

2008-02-12 Thread Cencio

Hi all,

i have this question: there is a way to generate a SOAPMessage from en
exception or a fault?

What i have to do when a creation of a fault message fails?

In Axis i do it in this way, that don't raise any exception: 

return new org.apache.axis.Message(new AxisFault("ErroreProcessamento"));

How can i generate a SOAPMessage with a fault and be sure that it don't
fail?


thx,
Lorenzo
-- 
View this message in context: 
http://www.nabble.com/SOAPMessage-after-Exception-tp15430055p15430055.html
Sent from the cxf-user mailing list archive at Nabble.com.



From byte[] to SOAPElement

2008-02-12 Thread Cencio

Hi all,

i have this problem... convert a byte array into a SOAPElement... 

i try passing by Document, but i fail :)

Any idea?
-- 
View this message in context: 
http://www.nabble.com/From-byte---to-SOAPElement-tp15429291p15429291.html
Sent from the cxf-user mailing list archive at Nabble.com.



message context is null

2008-02-12 Thread Mayank Thakore
Hi,

I inject the context into my service impl like this:

@Resource
private WebServiceContext context;

The context is available during invocation, but when I do:

MessageContext messageContext = context.getMessageContext();

The messageContext comes up null in Solaris. In Windows it comes fine.

What am I doing wrong?

Mayank
 


 This e-mail and attachments contain confidential information from HUAWEI,
which is intended only for the person or entity whose address is listed
above. Any use of the information contained herein in any way (including,
but not limited to, total or partial disclosure, reproduction, or
dissemination) by persons other than the intended recipient's) is
prohibited. If you receive this e-mail in error, please notify the sender by
phone or email immediately and delete it!