Neeraj,

There is no such restriction, as far as I know.
What do you mean by "using"? Could you provide this class?

Denis

ср, 4 апр. 2018 г. в 10:32, Neeraj Vaidya <[email protected]>:

> On analysing further it seems the field id indicated as “marker” below is
> actually a member of one of the class instances used inside the service
> classes. Is there anything restriction as such about using custom classes
> in a service implementation ?
>
> Sent from my iPhone
>
> > On 4 Apr 2018, at 15:06, Neeraj Vaidya <[email protected]>
> wrote:
> >
> > Hi,
> >
> > I am trying to deploy a service during ignite node startup. But I
> noticed 2 peculiar behaviours. I am loading the class using
> > Note that I am using a single-node cluster. Thus, the service class is
> present on the classpath of the node where I am trying to deploy this
> service.
> >
> > Observation-1
> > ---------------------
> > When the service class is part of the same (scala) package as the class
> which contains the main method and also starts the ignite cluster, the
> service gets deployed successfully.
> >
> > Observation-2
> > -------------------
> > However, when the service class is NOT part of the same (scala) package
> as the class which contains the main method and also starts the ignite
> cluster, the service DOES NOT deployed successfully.
> >
> > I am providing the user the ability to configure the Service class via a
> configuration file i.e. the configuration file will contain an entry which
> will contain a key :
> > serviceClass =
> "org.hypercomp.axlrate.charging.loader.AxlRateChargingService"
> > serviceName = "AXLRATE_CHARGING_MODULE"
> > ...
> > ...
> >
> > Then in the scala code, I am instantiating the service class above using
> Class.forName(serviceClass).newInstance.asInstanceOf[....] Not sure if this
> is a great idea, but it works when the class is part of the same package as
> the class containing the main(args: Array[String]) method.
> >
> > The stack trace I see is as follows [Note all classes prefixed with
> org.hypercomp are my custom classes].  :
> >
> > [14:12:54,906][SEVERE][main][GridServiceProcessor] Failed to marshal
> service with configured marshaller [name=AXLRATE_CHARGING_MODULE,
> srvc=org.hypercomp.axlrate.charging.loader.AxlRateChargingService@b91d8c4,
> marsh=o.a.i.i.binary.BinaryMarshaller@6ea1bcdc]
> > class org.apache.ignite.IgniteCheckedException: Duplicate field ID:
> marker
> >        at
> org.apache.ignite.internal.util.IgniteUtils.marshal(IgniteUtils.java:9883)
> >        at
> org.apache.ignite.internal.processors.service.GridServiceProcessor.prepareServiceConfigurations(GridServiceProcessor.java:534)
> >        at
> org.apache.ignite.internal.processors.service.GridServiceProcessor.deployAll(GridServiceProcessor.java:568)
> >        at
> org.apache.ignite.internal.IgniteServicesImpl.deployAll(IgniteServicesImpl.java:238)
> >        at
> org.apache.ignite.internal.IgniteServicesImpl.deploy(IgniteServicesImpl.java:221)
> >        at
> org.hypercomp.axlrate.utils.imdg.AxlRateImdgManager$AxlRateIgniteImdgManager$.$anonfun$startNode$1(AxlRateImdgManager.scala:80)
> >        at
> org.hypercomp.axlrate.utils.imdg.AxlRateImdgManager$AxlRateIgniteImdgManager$.$anonfun$startNode$1$adapted(AxlRateImdgManager.scala:80)
> >        at scala.collection.immutable.List.foreach(List.scala:389)
> >        at
> org.hypercomp.axlrate.utils.imdg.AxlRateImdgManager$AxlRateIgniteImdgManager$.startNode(AxlRateImdgManager.scala:80)
> >        at
> org.hypercomp.axlrate.utils.imdg.AxlRateImdgManager$.startNode(AxlRateImdgManager.scala:115)
> >        at
> org.hypercomp.axlrate.core.loader.AxlRateBoot$.main(AxlRateBoot.scala:92)
> >        at
> org.hypercomp.axlrate.core.loader.AxlRateBoot.main(AxlRateBoot.scala)
> > Caused by: class org.apache.ignite.binary.BinaryObjectException:
> Duplicate field ID: marker
> >        at
> org.apache.ignite.internal.binary.BinaryClassDescriptor.<init>(BinaryClassDescriptor.java:312)
> >        at
> org.apache.ignite.internal.binary.BinaryContext.registerUserClassDescriptor(BinaryContext.java:780)
> >        at
> org.apache.ignite.internal.binary.BinaryContext.registerClassDescriptor(BinaryContext.java:752)
> >        at
> org.apache.ignite.internal.binary.BinaryContext.descriptorForClass(BinaryContext.java:623)
> >        at
> org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal0(BinaryWriterExImpl.java:164)
> >        at
> org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:147)
> >        at
> org.apache.ignite.internal.binary.BinaryWriterExImpl.marshal(BinaryWriterExImpl.java:134)
> >        at
> org.apache.ignite.internal.binary.BinaryWriterExImpl.doWriteObject(BinaryWriterExImpl.java:496)
> >        at
> org.apache.ignite.internal.binary.BinaryWriterExImpl.writeObjectField(BinaryWriterExImpl.java:1160)
> >        at
> org.apache.ignite.internal.binary.BinaryFieldAccessor$DefaultFinalClassAccessor.write(BinaryFieldAccessor.java:663)
> >        at
> org.apache.ignite.internal.binary.BinaryClassDescriptor.write(BinaryClassDescriptor.java:793)
>
>

Reply via email to