ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From 李玉珏 <18624049...@163.com>
Subject Re: Re: Re: about AOP development
Date Thu, 21 Jan 2016 06:43:55 GMT
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 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.
>> >>>>>
>> >>>>>
>> >>>
>> >>>
>> >>
>> >
>> >
>>
>
>
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message