You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Santosh Kulkarni <sk...@jcpenney.com> on 2008/10/24 23:06:09 UTC

Suggestion: Hook into LoggingOutInterceptor

Hi,

  I wanted to do some custom logging of the outgoing message. The
suggestion was to look into the class LoggingOutInterceptor. I made it
work but only with copy-paste-change.

 

How about we make a small change to the LoggingOutInterceptor making it
accept another argument in the constructor of type
LogMessageTransformer, which it can call prior to actually writing to
the log. This will help in case we just need to make some search and
replace like changes, e.g. masking sensitive information with X's.

 

Interface and modification is as follows.

//Interface

public interface LogMessageTransformer {

      /**

       * @param argMessageToBeTransformed incoming message to be
transformed

       * @return transformedMessage

       */

      public String transform(String argMessageToBeTransformed);

}

//change to the LoggingOutInterceptor.java

String logMessage=buffer.toString() ;
If(transformer!=null){
        logMessage=transformer.transform(logMessage);                

}

if (writer != null) {
        writer.println(logMessage);
                 } else if (LOG.isLoggable(Level.INFO)) {
                     LOG.info(logMessage);
                 }

 


Re: Suggestion: Hook into LoggingOutInterceptor

Posted by Benson Margulies <bi...@gmail.com>.
Post up a patch in JIRA? I won't quite promise to commit it without
more thought, but it seems plausible.

On Fri, Oct 24, 2008 at 5:06 PM, Santosh Kulkarni <sk...@jcpenney.com> wrote:
> Hi,
>
>   I wanted to do some custom logging of the outgoing message. The suggestion
> was to look into the class LoggingOutInterceptor. I made it work but only
> with copy-paste-change.
>
>
>
> How about we make a small change to the LoggingOutInterceptor making it
> accept another argument in the constructor of type LogMessageTransformer,
> which it can call prior to actually writing to the log. This will help in
> case we just need to make some search and replace like changes, e.g. masking
> sensitive information with X's.
>
>
>
> Interface and modification is as follows.
>
> //Interface
>
> public interface LogMessageTransformer {
>
>       /**
>
>        * @param argMessageToBeTransformed incoming message to be transformed
>
>        * @return transformedMessage
>
>        */
>
>       public String transform(String argMessageToBeTransformed);
>
> }
>
> //change to the LoggingOutInterceptor.java
>
> String logMessage=buffer.toString() ;
>
> If(transformer!=null){
>
>         logMessage=transformer.transform(logMessage);
>
> }
>
> if (writer != null) {
>
>         writer.println(logMessage);
>
>                  } else if (LOG.isLoggable(Level.INFO)) {
>
>                      LOG.info(logMessage);
>
>                  }
>
>
>
> The information transmitted is intended only for the person or entity to
> which it is addressed and may contain confidential and/or privileged
> material.  If the reader of this message is not the intended recipient,
> you are hereby notified that your access is unauthorized, and any review,
> dissemination, distribution or copying of this message including any
> attachments is strictly prohibited.   If you are not the intended
> recipient, please contact the sender and delete the material from any
> computer.
>
>

Re: [revisiting] jax-ws @WebParam "Required" annotation?

Posted by Daniel Kulp <dk...@apache.org>.
On Tuesday 28 October 2008 9:29:39 am Ostermueller, Erik wrote:
> With our setup, CXFServlet loads with web.xml.
> I'm thinking I should subclass CXFServlet and then configure the
> services (like you showed me below) in that subclass after my beans.xml
> is loaded.  Does that sound right?

You can do it with the current cxf servlet.   If you look at:

http://svn.apache.org/repos/asf/cxf/trunk/systests/src/test/resources/webapp/WEB-INF/beans.xml 

you can see how configurations are added via the spring config.   That does it 
for the simple frontend, but the jaxws frontend is similar.    The default 
for JAXWS would look like:

<bean class="org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean">
      <property name="serviceConfigurations">
          <list>
              <bean 
class="org.apache.cxf.jaxws.support.JaxWsServiceConfiguration"/>
              <bean 
class="org.apache.cxf.service.factory.DefaultServiceConfiguration"/>
          </list>
      </property>
  </bean>

thus, just stick yours first in that list.


Dan


> -----Original Message-----
> From: Daniel Kulp [mailto:dkulp@apache.org]
> Sent: Monday, October 27, 2008 2:21 PM
> To: users@cxf.apache.org
> Cc: Ostermueller, Erik
> Subject: Re: [revisiting] jax-ws @WebParam "Required" annotation?
>
>
> If you use the ServerFactoryBeans (and not just
> "Endpoint.publish(...)"), you can call:
>
> factory.getServiceFactory().getConfigurations()
> or setConfigurations() to manipulate the list of configurations.  In
> general, you would do something like:
>
> factory.getServiceFactory().getConfigurations().add(0, yourConfig);
>
> Dan
>
> On Monday 27 October 2008 1:05:22 pm Ostermueller, Erik wrote:
> > http://www.nabble.com/jax-ws-@WebParam-%22Required%22-annotation--td19
> > 83
> > 7631.html
> >
> > In the above thread, Dan wrote:
> > >> With 2.1.3, you will be able to write a ServiceConfiguration object
> >
> > that
> >
> > >> can override the getWrapperPartMinOccurs method to return 1 instead
> >
> > of
> >
> > >> 0.  You can try the 2.1.3 snapshots if you want to play with that.
> >
> > I'm doing java-first and would like to take a look at trying this.
> > How do you associate a custom ServiceConfiguration with the service?
> > Perhaps you could point me to a particular junit test that does
>
> this...
>
>
>
> --
> Daniel Kulp
> dkulp@apache.org
> http://dankulp.com/blog
>
> _____________
>
> The information contained in this message is proprietary and/or
> confidential. If you are not the intended recipient, please: (i) delete the
> message and all copies; (ii) do not disclose, distribute or use the message
> in any manner; and (iii) notify the sender immediately. In addition, please
> be aware that any message addressed to our domain is subject to archiving
> and review by persons other than the intended recipient. Thank you.
> _____________



-- 
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog

JIRA Filed Re: AEGIS StackOverflow

Posted by Coder One <co...@yahoo.com>.
https://issues.apache.org/jira/browse/CXF-1899


Check out the maven projects...

--- On Mon, 11/3/08, Coder One <co...@yahoo.com> wrote:

> From: Coder One <co...@yahoo.com>
> Subject: Re: AEGIS StackOverflow
> To: users@cxf.apache.org
> Date: Monday, November 3, 2008, 10:53 PM
> So, I was trying to setup the object graph to reproduce the
> problem.  The orginal graph was created by Hibernate
> with/without Beanlib, but my handcrafted object graph (which
> should be equivalent to the original 2 graphs) gave this
> exception...huh...
> 
> com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in
> attribute value
> 
> 
> Nov 3, 2008 10:48:32 PM
> org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Interceptor has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: Error parsing document..
> Nested exception is com.ctc.wstx.exc.WstxEOFException:
> Unexpected EOF in attribute value
>  at [row,col {unknown-source}]: [1,615384]
>         at
> org.apache.cxf.aegis.databinding.XMLStreamDataReader.read(XMLStreamDataReader.java:49)
>         at
> org.apache.cxf.aegis.databinding.XMLStreamDataReader.read(XMLStreamDataReader.java:34)
>         at
> org.apache.cxf.interceptor.DocLiteralInInterceptor.getPara(DocLiteralInInterceptor.java:235)
>         at
> org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:120)
>         at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
>         at
> org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:633)
>         at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2064)
>         at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1942)
>         at
> org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1867)
>         at
> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
>         at
> org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:595)
>         at
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>         at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
>         at
> org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:466)
> 
> 
> --- On Mon, 11/3/08, Benson Margulies
> <bi...@gmail.com> wrote:
> 
> > From: Benson Margulies <bi...@gmail.com>
> > Subject: Re: AEGIS StackOverflow
> > To: users@cxf.apache.org, coder_lol@yahoo.com
> > Date: Monday, November 3, 2008, 5:13 AM
> > This shouldn't be possible. Care to post a test
> case to
> > JIRA.
> > 
> > On Sun, Nov 2, 2008 at 10:48 PM, Coder One
> > <co...@yahoo.com> wrote:
> > > I turned on debug, but could not pinpoint what
> may
> > have gone wrong...Anyone with a good pointer?  Thanks,
> > >
> > > ===
> > > log4j.logger.org.apache.cxf.aegis=DEBUG,STDOUT
> > > log4j.additivity.org.apache.cxf.aegis=false
> > >
> > >
> log4j.logger.org.apache.cxf.staxutils=DEBUG,STDOUT
> > > log4j.additivity.org.apache.cxf.staxutils=false
> > >
> > > log4j.logger.com.ctc.wstx=DEBUG,STDOUT
> > > log4j.additivity.com.ctc.wstx=false
> > > ===
> > >
> > > Caused by: java.lang.StackOverflowError
> > >        at
> >
> com.ctc.wstx.sr.NsAttributeCollector.resolveNamespaces(NsAttributeCollector.java:239)
> > >        at
> >
> com.ctc.wstx.sr.NsInputElementStack.resolveAndValidateElement(NsInputElementStack.java:374)
> > >        at
> >
> com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2945)
> > >        at
> >
> com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2846)
> > >        at
> >
> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
> > >        at
> >
> org.apache.cxf.staxutils.DepthXMLStreamReader.next(DepthXMLStreamReader.java:220)
> > >        at
> >
> org.apache.cxf.aegis.xml.stax.ElementReader.getValue(ElementReader.java:132)
> > >        at
> >
> org.apache.cxf.aegis.type.basic.StringType.readObject(StringType.java:36)
> > >        at
> >
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> > >        at
> >
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> > >        at
> >
> org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
> > >        at
> >
> org.apache.cxf.aegis.type.collection.CollectionType.readObject(CollectionType.java:50)
> > >        at
> >
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> > >        at
> >
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> > >        at
> >
> org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
> > >        at
> >
> org.apache.cxf.aegis.type.collection.CollectionType.readObject(CollectionType.java:50)
> > >        at
> >
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> > >        at
> >
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> > >        at
> >
> org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
> > >
> > >
> > >
> > >
> > >
> > >


      


Re: AEGIS StackOverflow

Posted by Coder One <co...@yahoo.com>.
So, I was trying to setup the object graph to reproduce the problem.  The orginal graph was created by Hibernate with/without Beanlib, but my handcrafted object graph (which should be equivalent to the original 2 graphs) gave this exception...huh...

com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in attribute value


Nov 3, 2008 10:48:32 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
INFO: Interceptor has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: Error parsing document.. Nested exception is com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in attribute value
 at [row,col {unknown-source}]: [1,615384]
        at org.apache.cxf.aegis.databinding.XMLStreamDataReader.read(XMLStreamDataReader.java:49)
        at org.apache.cxf.aegis.databinding.XMLStreamDataReader.read(XMLStreamDataReader.java:34)
        at org.apache.cxf.interceptor.DocLiteralInInterceptor.getPara(DocLiteralInInterceptor.java:235)
        at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:120)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
        at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:633)
        at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2064)
        at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1942)
        at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1867)
        at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
        at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:595)
        at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:220)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:466)


--- On Mon, 11/3/08, Benson Margulies <bi...@gmail.com> wrote:

> From: Benson Margulies <bi...@gmail.com>
> Subject: Re: AEGIS StackOverflow
> To: users@cxf.apache.org, coder_lol@yahoo.com
> Date: Monday, November 3, 2008, 5:13 AM
> This shouldn't be possible. Care to post a test case to
> JIRA.
> 
> On Sun, Nov 2, 2008 at 10:48 PM, Coder One
> <co...@yahoo.com> wrote:
> > I turned on debug, but could not pinpoint what may
> have gone wrong...Anyone with a good pointer?  Thanks,
> >
> > ===
> > log4j.logger.org.apache.cxf.aegis=DEBUG,STDOUT
> > log4j.additivity.org.apache.cxf.aegis=false
> >
> > log4j.logger.org.apache.cxf.staxutils=DEBUG,STDOUT
> > log4j.additivity.org.apache.cxf.staxutils=false
> >
> > log4j.logger.com.ctc.wstx=DEBUG,STDOUT
> > log4j.additivity.com.ctc.wstx=false
> > ===
> >
> > Caused by: java.lang.StackOverflowError
> >        at
> com.ctc.wstx.sr.NsAttributeCollector.resolveNamespaces(NsAttributeCollector.java:239)
> >        at
> com.ctc.wstx.sr.NsInputElementStack.resolveAndValidateElement(NsInputElementStack.java:374)
> >        at
> com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2945)
> >        at
> com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2846)
> >        at
> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
> >        at
> org.apache.cxf.staxutils.DepthXMLStreamReader.next(DepthXMLStreamReader.java:220)
> >        at
> org.apache.cxf.aegis.xml.stax.ElementReader.getValue(ElementReader.java:132)
> >        at
> org.apache.cxf.aegis.type.basic.StringType.readObject(StringType.java:36)
> >        at
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> >        at
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> >        at
> org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
> >        at
> org.apache.cxf.aegis.type.collection.CollectionType.readObject(CollectionType.java:50)
> >        at
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> >        at
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> >        at
> org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
> >        at
> org.apache.cxf.aegis.type.collection.CollectionType.readObject(CollectionType.java:50)
> >        at
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> >        at
> org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
> >        at
> org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
> >
> >
> >
> >
> >
> >


      


Re: AEGIS StackOverflow

Posted by Benson Margulies <bi...@gmail.com>.
This shouldn't be possible. Care to post a test case to JIRA.

On Sun, Nov 2, 2008 at 10:48 PM, Coder One <co...@yahoo.com> wrote:
> I turned on debug, but could not pinpoint what may have gone wrong...Anyone with a good pointer?  Thanks,
>
> ===
> log4j.logger.org.apache.cxf.aegis=DEBUG,STDOUT
> log4j.additivity.org.apache.cxf.aegis=false
>
> log4j.logger.org.apache.cxf.staxutils=DEBUG,STDOUT
> log4j.additivity.org.apache.cxf.staxutils=false
>
> log4j.logger.com.ctc.wstx=DEBUG,STDOUT
> log4j.additivity.com.ctc.wstx=false
> ===
>
> Caused by: java.lang.StackOverflowError
>        at com.ctc.wstx.sr.NsAttributeCollector.resolveNamespaces(NsAttributeCollector.java:239)
>        at com.ctc.wstx.sr.NsInputElementStack.resolveAndValidateElement(NsInputElementStack.java:374)
>        at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2945)
>        at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2846)
>        at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
>        at org.apache.cxf.staxutils.DepthXMLStreamReader.next(DepthXMLStreamReader.java:220)
>        at org.apache.cxf.aegis.xml.stax.ElementReader.getValue(ElementReader.java:132)
>        at org.apache.cxf.aegis.type.basic.StringType.readObject(StringType.java:36)
>        at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
>        at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
>        at org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
>        at org.apache.cxf.aegis.type.collection.CollectionType.readObject(CollectionType.java:50)
>        at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
>        at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
>        at org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
>        at org.apache.cxf.aegis.type.collection.CollectionType.readObject(CollectionType.java:50)
>        at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
>        at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
>        at org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
>
>
>
>
>
>

AEGIS StackOverflow

Posted by Coder One <co...@yahoo.com>.
I turned on debug, but could not pinpoint what may have gone wrong...Anyone with a good pointer?  Thanks,

===
log4j.logger.org.apache.cxf.aegis=DEBUG,STDOUT
log4j.additivity.org.apache.cxf.aegis=false

log4j.logger.org.apache.cxf.staxutils=DEBUG,STDOUT
log4j.additivity.org.apache.cxf.staxutils=false

log4j.logger.com.ctc.wstx=DEBUG,STDOUT
log4j.additivity.com.ctc.wstx=false
===

Caused by: java.lang.StackOverflowError
        at com.ctc.wstx.sr.NsAttributeCollector.resolveNamespaces(NsAttributeCollector.java:239)
        at com.ctc.wstx.sr.NsInputElementStack.resolveAndValidateElement(NsInputElementStack.java:374)
        at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2945)
        at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2846)
        at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
        at org.apache.cxf.staxutils.DepthXMLStreamReader.next(DepthXMLStreamReader.java:220)
        at org.apache.cxf.aegis.xml.stax.ElementReader.getValue(ElementReader.java:132)
        at org.apache.cxf.aegis.type.basic.StringType.readObject(StringType.java:36)
        at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
        at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
        at org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
        at org.apache.cxf.aegis.type.collection.CollectionType.readObject(CollectionType.java:50)
        at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
        at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
        at org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)
        at org.apache.cxf.aegis.type.collection.CollectionType.readObject(CollectionType.java:50)
        at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
        at org.apache.cxf.aegis.type.basic.BeanType.readObject(BeanType.java:146)
        at org.apache.cxf.aegis.type.basic.ArrayType.readCollection(ArrayType.java:89)



      


Re: No Write Method for Property

Posted by Coder One <co...@yahoo.com>.
Yeah, I RTFM'ed, but I missed the section...thanks...:)

Link included for reference...

http://cwiki.apache.org/CXF20DOC/introduction-to-aegis-21.html


--- On Sun, 11/2/08, Benson Margulies <bi...@gmail.com> wrote:

> From: Benson Margulies <bi...@gmail.com>
> Subject: Re: No Write Method for Property
> To: users@cxf.apache.org, coder_lol@yahoo.com
> Date: Sunday, November 2, 2008, 4:13 PM
> Use a .aegis.xml file to ignore the method.
> 
> On Sun, Nov 2, 2008 at 6:58 PM, Coder One
> <co...@yahoo.com> wrote:
> > Using AEGIS, CXF 2.1.3, and Simple Front End on both
> Server/Client and received the following error.
> >
> > org.apache.cxf.interceptor.Fault: No write method for
> property {http://regmgmt.services.xyz}success
> >
> > That's because by response class extends from a
> response base class that has a isSuccess() method.  The
> isSuccess() checks a few other instance members to decide
> whether to return true or false.  Ie. there is no success
> instance member.
> >
> > It looks like I have to make a no-op setSuccess()
> method, but that's kind of ugly.  Is there a way to get
> around this?  To get AEGIS to ignore certain methods? 
> I'd rather avoid direct annotation and stay with Spring,
> but if there is no other options, then I can go with
> annotation.
> >
> > Thanks...
> >
> >
> >
> >
> >
> >
> >


      


Re: No Write Method for Property

Posted by Benson Margulies <bi...@gmail.com>.
Use a .aegis.xml file to ignore the method.

On Sun, Nov 2, 2008 at 6:58 PM, Coder One <co...@yahoo.com> wrote:
> Using AEGIS, CXF 2.1.3, and Simple Front End on both Server/Client and received the following error.
>
> org.apache.cxf.interceptor.Fault: No write method for property {http://regmgmt.services.xyz}success
>
> That's because by response class extends from a response base class that has a isSuccess() method.  The isSuccess() checks a few other instance members to decide whether to return true or false.  Ie. there is no success instance member.
>
> It looks like I have to make a no-op setSuccess() method, but that's kind of ugly.  Is there a way to get around this?  To get AEGIS to ignore certain methods?  I'd rather avoid direct annotation and stay with Spring, but if there is no other options, then I can go with annotation.
>
> Thanks...
>
>
>
>
>
>
>

No Write Method for Property

Posted by Coder One <co...@yahoo.com>.
Using AEGIS, CXF 2.1.3, and Simple Front End on both Server/Client and received the following error.

org.apache.cxf.interceptor.Fault: No write method for property {http://regmgmt.services.xyz}success

That's because by response class extends from a response base class that has a isSuccess() method.  The isSuccess() checks a few other instance members to decide whether to return true or false.  Ie. there is no success instance member.

It looks like I have to make a no-op setSuccess() method, but that's kind of ugly.  Is there a way to get around this?  To get AEGIS to ignore certain methods?  I'd rather avoid direct annotation and stay with Spring, but if there is no other options, then I can go with annotation.

Thanks...




      


RE: [revisiting] jax-ws @WebParam "Required" annotation?

Posted by "Ostermueller, Erik" <Er...@fnis.com>.
With our setup, CXFServlet loads with web.xml.
I'm thinking I should subclass CXFServlet and then configure the
services (like you showed me below) in that subclass after my beans.xml
is loaded.  Does that sound right?

-----Original Message-----
From: Daniel Kulp [mailto:dkulp@apache.org] 
Sent: Monday, October 27, 2008 2:21 PM
To: users@cxf.apache.org
Cc: Ostermueller, Erik
Subject: Re: [revisiting] jax-ws @WebParam "Required" annotation?


If you use the ServerFactoryBeans (and not just
"Endpoint.publish(...)"), you can call:

factory.getServiceFactory().getConfigurations()
or setConfigurations() to manipulate the list of configurations.  In
general, you would do something like:

factory.getServiceFactory().getConfigurations().add(0, yourConfig);

Dan


On Monday 27 October 2008 1:05:22 pm Ostermueller, Erik wrote:
> http://www.nabble.com/jax-ws-@WebParam-%22Required%22-annotation--td19
> 83
> 7631.html
>
> In the above thread, Dan wrote:
> >> With 2.1.3, you will be able to write a ServiceConfiguration object
>
> that
>
> >> can override the getWrapperPartMinOccurs method to return 1 instead
>
> of
>
> >> 0.  You can try the 2.1.3 snapshots if you want to play with that.
>
> I'm doing java-first and would like to take a look at trying this.
> How do you associate a custom ServiceConfiguration with the service?
> Perhaps you could point me to a particular junit test that does
this...
>


--
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog

_____________

The information contained in this message is proprietary and/or confidential. If you are not the 
intended recipient, please: (i) delete the message and all copies; (ii) do not disclose, 
distribute or use the message in any manner; and (iii) notify the sender immediately. In addition, 
please be aware that any message addressed to our domain is subject to archiving and review by 
persons other than the intended recipient. Thank you.
_____________

Re: [revisiting] jax-ws @WebParam "Required" annotation?

Posted by Daniel Kulp <dk...@apache.org>.
If you use the ServerFactoryBeans (and not just "Endpoint.publish(...)"), you 
can call:

factory.getServiceFactory().getConfigurations()
or setConfigurations() to manipulate the list of configurations.  In general, 
you would do something like:

factory.getServiceFactory().getConfigurations().add(0, yourConfig);

Dan


On Monday 27 October 2008 1:05:22 pm Ostermueller, Erik wrote:
> http://www.nabble.com/jax-ws-@WebParam-%22Required%22-annotation--td1983
> 7631.html
>
> In the above thread, Dan wrote:
> >> With 2.1.3, you will be able to write a ServiceConfiguration object
>
> that
>
> >> can override the getWrapperPartMinOccurs method to return 1 instead
>
> of
>
> >> 0.  You can try the 2.1.3 snapshots if you want to play with that.
>
> I'm doing java-first and would like to take a look at trying this.
> How do you associate a custom ServiceConfiguration with the service?
> Perhaps you could point me to a particular junit test that does this...
>


-- 
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog

RE: Suggestion: Hook into LoggingOutInterceptor

Posted by santosh kulkarni <sk...@jcpenney.com>.
I attached a patch,
https://issues.apache.org/jira/secure/ManageAttachments.jspa?id=12407335

Thank you both for replying, I'll submit a patch tonight.
Santosh

-----Original Message-----
From: Daniel Kulp [mailto:dkulp@apache.org] 
Sent: Monday, October 27, 2008 9:36 AM
To: users@cxf.apache.org
Cc: Benson Margulies
Subject: Re: Suggestion: Hook into LoggingOutInterceptor

On Friday 24 October 2008 6:38:30 pm Benson Margulies wrote:
> Actually, I'd prefer if you change the interceptor to have a protected
> function that does nothing. Thus, the pattern will be to make a
> subclass that overrides the function instead of passing in a filtering
> function. This seems somehow more consistent with everything else.

I agree.   A simple protected method to handle this is preferred.

<clipped>
-- 
View this message in context: http://www.nabble.com/Suggestion%3A-Hook-into-LoggingOutInterceptor-tp20157829p20201405.html
Sent from the cxf-user mailing list archive at Nabble.com.


[revisiting] jax-ws @WebParam "Required" annotation?

Posted by "Ostermueller, Erik" <Er...@fnis.com>.

http://www.nabble.com/jax-ws-@WebParam-%22Required%22-annotation--td1983
7631.html

In the above thread, Dan wrote:

>> With 2.1.3, you will be able to write a ServiceConfiguration object
that 
>> can override the getWrapperPartMinOccurs method to return 1 instead
of 
>> 0.  You can try the 2.1.3 snapshots if you want to play with that. 

I'm doing java-first and would like to take a look at trying this.
How do you associate a custom ServiceConfiguration with the service?
Perhaps you could point me to a particular junit test that does this...

Thanks,

--Erik Ostermueller

_____________

The information contained in this message is proprietary and/or confidential. If you are not the 
intended recipient, please: (i) delete the message and all copies; (ii) do not disclose, 
distribute or use the message in any manner; and (iii) notify the sender immediately. In addition, 
please be aware that any message addressed to our domain is subject to archiving and review by 
persons other than the intended recipient. Thank you.
_____________

RE: Suggestion: Hook into LoggingOutInterceptor

Posted by Santosh Kulkarni <sk...@jcpenney.com>.
Thank you both for replying, I'll submit a patch tonight.
Santosh

-----Original Message-----
From: Daniel Kulp [mailto:dkulp@apache.org] 
Sent: Monday, October 27, 2008 9:36 AM
To: users@cxf.apache.org
Cc: Benson Margulies
Subject: Re: Suggestion: Hook into LoggingOutInterceptor

On Friday 24 October 2008 6:38:30 pm Benson Margulies wrote:
> Actually, I'd prefer if you change the interceptor to have a protected
> function that does nothing. Thus, the pattern will be to make a
> subclass that overrides the function instead of passing in a filtering
> function. This seems somehow more consistent with everything else.

I agree.   A simple protected method to handle this is preferred.

Dan


> On Fri, Oct 24, 2008 at 5:06 PM, Santosh Kulkarni
<sk...@jcpenney.com> 
wrote:
> > Hi,
> >
> >   I wanted to do some custom logging of the outgoing message. The
> > suggestion was to look into the class LoggingOutInterceptor. I made
it
> > work but only with copy-paste-change.
> >
> >
> >
> > How about we make a small change to the LoggingOutInterceptor making
it
> > accept another argument in the constructor of type
LogMessageTransformer,
> > which it can call prior to actually writing to the log. This will
help in
> > case we just need to make some search and replace like changes, e.g.
> > masking sensitive information with X's.
> >
> >
> >
> > Interface and modification is as follows.
> >
> > //Interface
> >
> > public interface LogMessageTransformer {
> >
> >       /**
> >
> >        * @param argMessageToBeTransformed incoming message to be
> > transformed
> >
> >        * @return transformedMessage
> >
> >        */
> >
> >       public String transform(String argMessageToBeTransformed);
> >
> > }
> >
> > //change to the LoggingOutInterceptor.java
> >
> > String logMessage=buffer.toString() ;
> >
> > If(transformer!=null){
> >
> >         logMessage=transformer.transform(logMessage);
> >
> > }
> >
> > if (writer != null) {
> >
> >         writer.println(logMessage);
> >
> >                  } else if (LOG.isLoggable(Level.INFO)) {
> >
> >                      LOG.info(logMessage);
> >
> >                  }
> >
> >
> >
> > The information transmitted is intended only for the person or
entity to
> > which it is addressed and may contain confidential and/or privileged
> > material.  If the reader of this message is not the intended
recipient,
> > you are hereby notified that your access is unauthorized, and any
review,
> > dissemination, distribution or copying of this message including any
> > attachments is strictly prohibited.   If you are not the intended
> > recipient, please contact the sender and delete the material from
any
> > computer.



-- 
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog

Re: Suggestion: Hook into LoggingOutInterceptor

Posted by Daniel Kulp <dk...@apache.org>.
On Friday 24 October 2008 6:38:30 pm Benson Margulies wrote:
> Actually, I'd prefer if you change the interceptor to have a protected
> function that does nothing. Thus, the pattern will be to make a
> subclass that overrides the function instead of passing in a filtering
> function. This seems somehow more consistent with everything else.

I agree.   A simple protected method to handle this is preferred.

Dan


> On Fri, Oct 24, 2008 at 5:06 PM, Santosh Kulkarni <sk...@jcpenney.com> 
wrote:
> > Hi,
> >
> >   I wanted to do some custom logging of the outgoing message. The
> > suggestion was to look into the class LoggingOutInterceptor. I made it
> > work but only with copy-paste-change.
> >
> >
> >
> > How about we make a small change to the LoggingOutInterceptor making it
> > accept another argument in the constructor of type LogMessageTransformer,
> > which it can call prior to actually writing to the log. This will help in
> > case we just need to make some search and replace like changes, e.g.
> > masking sensitive information with X's.
> >
> >
> >
> > Interface and modification is as follows.
> >
> > //Interface
> >
> > public interface LogMessageTransformer {
> >
> >       /**
> >
> >        * @param argMessageToBeTransformed incoming message to be
> > transformed
> >
> >        * @return transformedMessage
> >
> >        */
> >
> >       public String transform(String argMessageToBeTransformed);
> >
> > }
> >
> > //change to the LoggingOutInterceptor.java
> >
> > String logMessage=buffer.toString() ;
> >
> > If(transformer!=null){
> >
> >         logMessage=transformer.transform(logMessage);
> >
> > }
> >
> > if (writer != null) {
> >
> >         writer.println(logMessage);
> >
> >                  } else if (LOG.isLoggable(Level.INFO)) {
> >
> >                      LOG.info(logMessage);
> >
> >                  }
> >
> >
> >
> > The information transmitted is intended only for the person or entity to
> > which it is addressed and may contain confidential and/or privileged
> > material.  If the reader of this message is not the intended recipient,
> > you are hereby notified that your access is unauthorized, and any review,
> > dissemination, distribution or copying of this message including any
> > attachments is strictly prohibited.   If you are not the intended
> > recipient, please contact the sender and delete the material from any
> > computer.



-- 
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog

Re: Suggestion: Hook into LoggingOutInterceptor

Posted by Benson Margulies <bi...@gmail.com>.
Actually, I'd prefer if you change the interceptor to have a protected
function that does nothing. Thus, the pattern will be to make a
subclass that overrides the function instead of passing in a filtering
function. This seems somehow more consistent with everything else.


On Fri, Oct 24, 2008 at 5:06 PM, Santosh Kulkarni <sk...@jcpenney.com> wrote:
> Hi,
>
>   I wanted to do some custom logging of the outgoing message. The suggestion
> was to look into the class LoggingOutInterceptor. I made it work but only
> with copy-paste-change.
>
>
>
> How about we make a small change to the LoggingOutInterceptor making it
> accept another argument in the constructor of type LogMessageTransformer,
> which it can call prior to actually writing to the log. This will help in
> case we just need to make some search and replace like changes, e.g. masking
> sensitive information with X's.
>
>
>
> Interface and modification is as follows.
>
> //Interface
>
> public interface LogMessageTransformer {
>
>       /**
>
>        * @param argMessageToBeTransformed incoming message to be transformed
>
>        * @return transformedMessage
>
>        */
>
>       public String transform(String argMessageToBeTransformed);
>
> }
>
> //change to the LoggingOutInterceptor.java
>
> String logMessage=buffer.toString() ;
>
> If(transformer!=null){
>
>         logMessage=transformer.transform(logMessage);
>
> }
>
> if (writer != null) {
>
>         writer.println(logMessage);
>
>                  } else if (LOG.isLoggable(Level.INFO)) {
>
>                      LOG.info(logMessage);
>
>                  }
>
>
>
> The information transmitted is intended only for the person or entity to
> which it is addressed and may contain confidential and/or privileged
> material.  If the reader of this message is not the intended recipient,
> you are hereby notified that your access is unauthorized, and any review,
> dissemination, distribution or copying of this message including any
> attachments is strictly prohibited.   If you are not the intended
> recipient, please contact the sender and delete the material from any
> computer.
>
>