ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vladimir Ershov <vers...@gridgain.com>
Subject Re: Re: Re: about AOP development
Date Thu, 21 Jan 2016 11:40:43 GMT
Hi,

Yes, sure, I can take a look. Just send me, please, your full logs with
exception, and describe how exactly you reproduce it (how many nodes
started, which one is client and etc.).

Thanks!

On Thu, Jan 21, 2016 at 9:43 AM, 李玉珏 <18624049226@163.com> wrote:

> Hi:
>
> I understand your approach, it should be feasible, but not very elegant.
> If use ProxyFactory in spring. At runtime dynamically add interceptor,
> can solve the problem, but performance will influence.
>
> I switched to a different way of writing, using the Service mechanism,
> code has been updated to GitHub, throws NullException. I survey the
> reason, the problem is in service deployment process of marshal and
> unmarshal stage, because of AdvisedSupport's methodCache is transient,
> this may be a compatibility problem, also asks you to look at.
>
>
> Sent from Mail Master
>
>
> On 2016-01-20 22:20 , Vladimir Ershov <vershov@gridgain.com> Wrote:
>
> As for the last step, let me correct myself:
>
>    3. Start server Ignite node from spring context *AND *put spring jars
> inside classpath in *.sh file. Be sure, that both nodes are using the same
> xml context.
>
> On Wed, Jan 20, 2016 at 5:07 PM, Vladimir Ershov <vershov@gridgain.com>
> wrote:
>
> > Hi!
> >
> > I've checked your code and spot an issue. The root cause, is using of
> > Autowired annotation, since it cause bean to be serialized on a client
> > side, and that leads ClassNotFoundException on the server side during
> bean
> > deserialization, since server was started from *.sh, without necessary
> > spring jars in the classpath.
> >
> > Good news here, that it could be fixed easily with those steps:
> >
> >    1. Remove Autowired from transferred entities as ComputeGridJob
> >    2. When you need an applicationContext, use
> >    @SpringApplicationContextResource annotation.  You are need to use it
> in
> >    your ComputeGridTask.
> >    3. Start server Ignite node from spring context, or put spring jars
> >    inside classpath in *.sh file.
> >
> > Also, you can simplify your solution for ComputeGridService by using
> > @ServiceResource. Take a look:
> > https://apacheignite.readme.io/docs/service-example
> >
> > Thanks!
> >
> > On Wed, Jan 20, 2016 at 6:07 AM, 李玉珏 <18624049226@163.com> wrote:
> >
> >> Hi:
> >> The relevant code on the GitHub, the address is:
> >> https://github.com/liyuj/computegrid
> >>
> >>
> >> Sent from Mail Master
> >>
> >>
> >>
> >> On 2016-01-20 04:32 , Dmitriy Setrakyan Wrote:
> >>
> >> The list does not support attachments. You can use pastebin [1] or gist
> >> [2]
> >> to paste your code and send the link here.
> >>
> >> [1] http://pastebin.com/
> >> [2] https://gist.github.com/
> >>
> >> D.
> >>
> >> On Tue, Jan 19, 2016 at 4:48 AM, 李玉珏@163 <18624049226@163.com> wrote:
> >>
> >> > Hi:
> >> >
> >> > I had just sent the code to the list.
> >> >
> >> > 在 16/1/19 20:39, Denis Magda 写道:
> >> >
> >> > Seems that peerClassLoading doesn't work for your case. Please share
> the
> >> >> source code of your example.
> >> >>
> >> >> --
> >> >> Denis
> >> >>
> >> >> On 1/18/2016 3:48 PM, 李玉珏@163 wrote:
> >> >>
> >> >>> Hi:
> >> >>>
> >> >>> I have already opened the peerClassLoading.
> >> >>> My practice is in eclipse create a java project, developed a
> >> >>> ComputeTaskSplitAdapter examples, then in the ComputeJobAdapter
> call
> >> >>> configured spring interceptors service. This example in eclipse
> >> operation
> >> >>> is no problem.
> >> >>>
> >> >>> But if I open a node in the command line by ignite.sh, it will
> prompt
> >> >>> the following error in the command line.
> >> >>>
> >> >>> In the default configuration file of ignite, the same configuration
> of
> >> >>> the peerClassLoading=true.
> >> >>>
> >> >>> 在 16/1/18 19:39, Yakov Zhdanov 写道:
> >> >>>
> >> >>>> Can you please try enabling "peerClassLoading" and share the
> results
> >> >>>> here?
> >> >>>>
> >> >>>> --Yakov
> >> >>>>
> >> >>>> 2016-01-16 12:09 GMT+03:00 李玉珏@163 <18624049226@163.com>:
> >> >>>>
> >> >>>> Hi:
> >> >>>>>
> >> >>>>> In a distributed environment, if use the spring AOP programming,
> >> >>>>> generated
> >> >>>>> a class of byte code enhancement, then the error will be
reported
> as
> >> >>>>> follows:
> >> >>>>>
> >> >>>>> java.lang.ClassNotFoundException:
> >> >>>>>
> demo.computegrid.ComputeGridService$$EnhancerBySpringCGLIB$$7b44b192
> >> >>>>>
> >> >>>>> This error I understand, this class does not exist on the
remote
> >> node.
> >> >>>>> But the question is, is it a technical limitation of Ignite,
or
> is
> >> it
> >> >>>>> the
> >> >>>>> way I use it,or is it a bug?
> >> >>>>>
> >> >>>>> I opened the peer class loading , the normal deployment
I did not
> >> test,
> >> >>>>> but I estimate it will be the same error.
> >> >>>>>
> >> >>>>>
> >> >>>
> >> >>>
> >> >>
> >> >
> >> >
> >>
> >
> >
>
>
>
> 来自 *网易**手机号码邮箱* -- 手机号码就是邮箱帐号,了解详情>
<http://shouji.163.com>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message