Hi,

Firstly, I agree that, outputing which WSDL file is used is important for
the end users, so I would suggest to do that in the ServiceImpl, think we
should already have the WSDL info there.

For the end users, getPort is really a common used method for web services
client programming, we could not always talk to them, you should share one
instance, no need to create one for each invocation. Especially, if they
knew that, there is possible thread-safe issue here, I did not think each
developer would like to dig into that, and check whether his scenario is
included in those exception list.

Also from Java EE side, it is allowed to inject/lookup the Service and sub
service class in the managed classes, which means we will have users to
program their applications with this style.

And yes, the perforamce may not a big issue here, and the key thing is
that, lots of messages are there in the log files. We could also talk to
the users to change the logging level, while just thinking that, whether we
could do that prior to uses ask that.

Thanks.


2013/3/18 Freeman Fang <[email protected]>

> As my comment in CXF-4893, I'm -1 for this change.
>
> Moreover, that INFO is very important in several cases. For example, some
> metadata is only carried by the WSDL, like ws-policy or schema validation
> info, you can easily run into weird  problem that why some feature doesn't
> work, check that INFO log to know whether the service model build from WSDL
> or Class is the first place to check.
>
> Given the importance of that INFO, I really don't think downgrade the log
> level for it is a good idea, and performance impact to print this INFO is
> acceptable IMO.  In CXF, the client proxy is thread safe in most cases, so
> it's rare that you need create a client pool, so generally for both client
> and server, you only see it once.
>
> -------------
> Freeman(Yue) Fang
>
> Red Hat, Inc.
> FuseSource is now part of Red Hat
> Web: http://fusesource.com | http://www.redhat.com/
> Twitter: freemanfang
> Blog: http://freemanfang.blogspot.com
> http://blog.sina.com.cn/u/1473905042
> weibo: @Freeman小屋
>
> On 2013-3-18, at 下午3:33, Ivan wrote:
>
> > Hi, devs,
> >
> > I hope that we could re-consider the logging level issue for CXF-4893
> about
> > changing the log level for buildServiceFromWSDL and buildServiceFromClass
> > in the ReflectionServiceBeanFactory class.
> >
> > The logging will be output while constructing the endpoint proxy,
> > typically, this will occurs while users invoke getPort or related methods
> > in the generated client stub classes.
> >
> > Yes, we should always reuse the client proxy, while considering that, the
> > generated proxy is not thread-safe in some scenarios (as mentioned in
> link
> > [1]), for the users, they may still like to create the port for each
> > invocation, so it will finally have lots of messages, which will mess the
> > log files and may also possible have side effection to the perf.
> >
> > If we would like to point out which wsdl file was used, think that
> > ServiceImpl class is a better location, as only one ServiceImpl should be
> > created in the common client codes writing practice.
> >
> > Thoughts ?
> >
> > [1]
> http://cxf.apache.org/faq.html#FAQ-AreJAXWSclientproxiesthreadsafe%3F
> >
> > --
> > Ivan
>
>


-- 
Ivan

Reply via email to