Exception during writePortableArray method call (Invalid field name)

481 views
Skip to first unread message

Avinash G A

unread,
Mar 4, 2016, 1:51:25 AM3/4/16
to Hazelcast
Hi,

I have a portable class named HardwareProfile which is having a field by name processors, processors is a list of Processor which is also a portable class. When i try to put the HardwareProfile object into the cache i am getting Invalid Field name exception.

Here is the code:-

package com.byteobject.cloudsanthe.dbclient.dto.compute;


import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;


import com.byteobject.cloudsanthe.common.serialization.SerializerFactory;
import com.byteobject.cloudsanthe.dbclient.dto.Entity;
import com.hazelcast.nio.serialization.Portable;
import com.hazelcast.nio.serialization.PortableReader;
import com.hazelcast.nio.serialization.PortableWriter;


/**
 * The Class HardwareProfile.
 */

public class HardwareProfile extends Entity<UUID> {


 
/** The cloud id. */
 
private String cloudId;


 
/** The cloud provider id. */
 
private String cloudProviderId;


 
/** The data center. */
 
private UUID dataCenter;


 
/** The ram. */
 
private int ram;


 
/** The processors. */
 
private List<Processor> processors;


 
/** The tags. */
 
private Set<String> tags;


 
/** The type. */
 
private String type;


 
/** The uri. */
 
private String uri;


 
/** The user meta data. */
 
private Map<String, String> userMetaData;


 
/**
 * Gets the cloud id.
 *
 * @return the cloud id
 */

 
public String getCloudId() {
 
return cloudId;
 
}


 
/**
 * Sets the cloud id.
 *
 * @param cloudId
 *            the new cloud id
 */

 
public void setCloudId(String cloudId) {
 
this.cloudId = cloudId;
 
}


 
/**
 * Gets the cloud provider id.
 *
 * @return the cloud provider id
 */

 
public String getCloudProviderId() {
 
return cloudProviderId;
 
}


 
/**
 * Sets the cloud provider id.
 *
 * @param cloudProviderId
 *            the new cloud provider id
 */

 
public void setCloudProviderId(String cloudProviderId) {
 
this.cloudProviderId = cloudProviderId;
 
}


 
/**
 * Gets the data center.
 *
 * @return the data center
 */

 
public UUID getDataCenter() {
 
return dataCenter;
 
}


 
/**
 * Sets the data center.
 *
 * @param dataCenter
 *            the new data center
 */

 
public void setDataCenter(UUID dataCenter) {
 
this.dataCenter = dataCenter;
 
}


 
/**
 * Gets the ram.
 *
 * @return the ram
 */

 
public int getRam() {
 
return ram;
 
}


 
/**
 * Sets the ram.
 *
 * @param ram
 *            the new ram
 */

 
public void setRam(int ram) {
 
this.ram = ram;
 
}


 
/**
 * Gets the processors.
 *
 * @return the processors
 */

 
public List<Processor> getProcessors() {
 
return processors;
 
}


 
/**
 * Sets the processors.
 *
 * @param processors
 *            the new processors
 */

 
public void setProcessors(List<Processor> processors) {
 
this.processors = processors;
 
}


 
/**
 * Gets the tags.
 *
 * @return the tags
 */

 
public Set<String> getTags() {
 
return tags;
 
}


 
/**
 * Sets the tags.
 *
 * @param tags
 *            the new tags
 */

 
public void setTags(Set<String> tags) {
 
this.tags = tags;
 
}


 
/**
 * Gets the type.
 *
 * @return the type
 */

 
public String getType() {
 
return type;
 
}


 
/**
 * Sets the type.
 *
 * @param type
 *            the new type
 */

 
public void setType(String type) {
 
this.type = type;
 
}


 
/**
 * Gets the uri.
 *
 * @return the uri
 */

 
public String getUri() {
 
return uri;
 
}


 
/**
 * Sets the uri.
 *
 * @param uri
 *            the new uri
 */

 
public void setUri(String uri) {
 
this.uri = uri;
 
}


 
/**
 * Gets the user meta data.
 *
 * @return the user meta data
 */

 
public Map<String, String> getUserMetaData() {
 
return userMetaData;
 
}


 
/**
 * Sets the user meta data.
 *
 * @param userMetaData
 *            the user meta data
 */

 
public void setUserMetaData(Map<String, String> userMetaData) {
 
this.userMetaData = userMetaData;
 
}


 
/*
 * (non-Javadoc)
 *
 * @see com.hazelcast.nio.serialization.Portable#getClassId()
 */

 
@Override
 
public int getClassId() {
 
return SerializerFactory.HARDWARE_PROFILE_DTO_PORTABLE_CLASS_ID;
 
}


 
@Override
 
protected Class<UUID> getIdentityClass() {
 
return UUID.class;
 
}


 
/*
 * (non-Javadoc)
 *
 * @see
 * com.byteobject.cloudsanthe.dbclient.dto.compute.Entity#writeIntoPortable(
 * com.hazelcast.nio.serialization.PortableWriter)
 */

 
@Override
 
protected void writeIntoPortable(PortableWriter writer) throws IOException {
 writer
.writeUTF("cloud_id", this.cloudId);
 writer
.writeUTF("cloud_provider_id", this.cloudProviderId);
 writer
.writeByteArray("data_center", SerializerFactory.asByteArray(this.dataCenter));
 writer
.writeInt("ram", this.ram);
 
if (this.processors != null) {
 writer
.writePortableArray("processors", processors.toArray(new Portable[] {}));
 
}
 writer
.writeByteArray("tags", SerializerFactory.asByteArray(this.tags));
 writer
.writeUTF("type", this.type);
 writer
.writeUTF("uri", this.uri);
 writer
.writeByteArray("user_metadata", SerializerFactory.asByteArray(this.userMetaData));


 
}


 
/*
 * (non-Javadoc)
 *
 * @see
 * com.byteobject.cloudsanthe.dbclient.dto.compute.Entity#readFromPortable(
 * com.hazelcast.nio.serialization.PortableReader)
 */

 
@SuppressWarnings("unchecked")
 
@Override
 
protected void readFromPortable(PortableReader reader) throws IOException {
 
this.cloudId = reader.readUTF("cloud_id");
 
this.cloudProviderId = reader.readUTF("cloud_provider_id");
 
this.dataCenter = SerializerFactory.asObject(reader.readByteArray("data_center"), UUID.class);
 
this.ram = reader.readInt("ram");
 
if (reader.hasField("processors")) {
 
Portable[] portableProcessors = reader.readPortableArray("processors");
 
List<Processor> processorsList = new ArrayList<>();
 
Arrays.asList(portableProcessors)
 
.forEach((portableProcessor) -> processorsList.add((Processor) portableProcessor));
 
this.processors = processorsList;
 
}
 
this.tags = SerializerFactory.asObject(reader.readByteArray("tags"), Set.class);
 
this.type = reader.readUTF("type");
 
this.uri = reader.readUTF("uri");
 
this.userMetaData = SerializerFactory.asObject(reader.readByteArray("user_metadata"), Map.class);
 
}


}

package com.byteobject.cloudsanthe.dbclient.dto.compute;


import java.io.IOException;


import com.byteobject.cloudsanthe.common.serialization.SerializerFactory;
import com.hazelcast.nio.serialization.Portable;
import com.hazelcast.nio.serialization.PortableReader;
import com.hazelcast.nio.serialization.PortableWriter;


/**
 * The Class Processor.
 */

public class Processor implements Portable{


 
/** The cores. */
 
private double cores;
 
 
/** The speed. */
 
private double speed;


 
/**
 * Gets the cores.
 *
 * @return the cores
 */

 
public double getCores() {
 
return cores;
 
}


 
/**
 * Sets the cores.
 *
 * @param cores the new cores
 */

 
public void setCores(double cores) {
 
this.cores = cores;
 
}


 
/**
 * Gets the speed.
 *
 * @return the speed
 */

 
public double getSpeed() {
 
return speed;
 
}


 
/**
 * Sets the speed.
 *
 * @param speed the new speed
 */

 
public void setSpeed(double speed) {
 
this.speed = speed;
 
}


 
/* (non-Javadoc)
 * @see com.hazelcast.nio.serialization.Portable#getFactoryId()
 */

 
@Override
 
public int getFactoryId() {
 
return SerializerFactory.COMMON_ENTITY_PORTABLE_FACTORY;
 
}


 
/* (non-Javadoc)
 * @see com.hazelcast.nio.serialization.Portable#getClassId()
 */

 
@Override
 
public int getClassId() {
 
return SerializerFactory.PROCESSOR_DTO_PORTABLE_CLASS_ID;
 
}


 
/* (non-Javadoc)
 * @see com.hazelcast.nio.serialization.Portable#writePortable(com.hazelcast.nio.serialization.PortableWriter)
 */

 
@Override
 
public void writePortable(PortableWriter writer) throws IOException {
 writer
.writeDouble("cores", this.cores);
 writer
.writeDouble("speed", this.speed);
 
}


 
/* (non-Javadoc)
 * @see com.hazelcast.nio.serialization.Portable#readPortable(com.hazelcast.nio.serialization.PortableReader)
 */

 
@Override
 
public void readPortable(PortableReader reader) throws IOException {
 
this.cores = reader.readDouble("cores");
 
this.speed = reader.readDouble("speed");
 
}
 
}


Here is the exception stack trace:-

com.hazelcast.nio.serialization.HazelcastSerializationException: Invalid field name: 'processors' for ClassDefinition {id: 2, version: 0}
 at com
.hazelcast.internal.serialization.impl.DefaultPortableWriter.setPosition(DefaultPortableWriter.java:241)
 at com
.hazelcast.internal.serialization.impl.DefaultPortableWriter.writePortableArray(DefaultPortableWriter.java:215)
 at com
.byteobject.cloudsanthe.dbclient.dto.compute.HardwareProfile.writeIntoPortable(HardwareProfile.java:254)
 at com
.byteobject.cloudsanthe.dbclient.dto.Entity.writePortable(Entity.java:193)
 at com
.hazelcast.internal.serialization.impl.PortableSerializer.writeInternal(PortableSerializer.java:69)
 at com
.hazelcast.internal.serialization.impl.PortableSerializer.write(PortableSerializer.java:60)
 at com
.hazelcast.internal.serialization.impl.PortableSerializer.write(PortableSerializer.java:34)
 at com
.hazelcast.internal.serialization.impl.StreamSerializerAdapter.write(StreamSerializerAdapter.java:41)
 at com
.hazelcast.internal.serialization.impl.AbstractSerializationService.toBytes(AbstractSerializationService.java:138)
 at com
.hazelcast.internal.serialization.impl.AbstractSerializationService.toData(AbstractSerializationService.java:116)
 at com
.hazelcast.internal.serialization.impl.AbstractSerializationService.toData(AbstractSerializationService.java:104)
 at com
.hazelcast.client.spi.ClientProxy.toData(ClientProxy.java:151)
 at com
.hazelcast.client.proxy.ClientMapProxy.put(ClientMapProxy.java:403)
 at com
.hazelcast.client.proxy.ClientMapProxy.put(ClientMapProxy.java:233)
 at com
.byteobject.cloudsanthe.dbclient.caching.aspect.HardwareProfileRepositoryCacheAspect.cacheableFindById(HardwareProfileRepositoryCacheAspect.java:93)
 at sun
.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun
.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun
.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java
.lang.reflect.Method.invoke(Unknown Source)
 at org
.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
 at org
.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
 at org
.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:68)
 at org
.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)
 at org
.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
 at org
.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 at org
.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
 at com
.sun.proxy.$Proxy44.find(Unknown Source)
 at com
.byteobject.cloudsanthe.dbclient.caching.aspect.HardwareProfileRepositoryCacheAspect.lambda$1(HardwareProfileRepositoryCacheAspect.java:218)
 at java
.util.ArrayList.forEach(Unknown Source)
 at com
.byteobject.cloudsanthe.dbclient.caching.aspect.HardwareProfileRepositoryCacheAspect.cacheEvictOnDeleteList(HardwareProfileRepositoryCacheAspect.java:215)
 at sun
.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun
.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun
.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java
.lang.reflect.Method.invoke(Unknown Source)
 at org
.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
 at org
.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
 at org
.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:68)
 at org
.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:168)
 at org
.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
 at org
.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
 at org
.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
 at com
.sun.proxy.$Proxy44.delete(Unknown Source)
 at com
.byteobject.cloudsanthe.dbclient.test.compute.HardwareProfileRepositoryTest.testSaveAndGetHardwareProfilesByTenantAndDataCenterAndByCloudId(HardwareProfileRepositoryTest.java:146)
 at sun
.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun
.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun
.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java
.lang.reflect.Method.invoke(Unknown Source)
 at org
.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
 at org
.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
 at org
.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
 at org
.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
 at org
.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
 at org
.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
 at org
.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
 at org
.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
 at org
.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:254)
 at org
.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
 at org
.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
 at org
.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
 at org
.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
 at org
.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
 at org
.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
 at org
.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
 at org
.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
 at org
.junit.runners.ParentRunner.run(ParentRunner.java:363)
 at org
.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
 at org
.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
 at org
.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
 at org
.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
 at org
.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
 at org
.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
 at org
.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)



Also i am using spring, hazelcastclient is a singleton spring bean.

What am i doing wrong here?

Regards,
--
Avinash

M. Sancar Koyunlu

unread,
Mar 4, 2016, 2:20:49 AM3/4/16
to Hazelcast
Since hazelcast creates class definition from your write method you can not skip a field with conditions.

if (this.processors != null) {
 writer
.writePortableArray("processors", processors.toArray(new Portable[] {}));
 
}

writePortableArray accepts null parameter. So you need change your code as following.


writer
.writePortableArray("processors"processors == null ? null :  processors.toArray(new Portable[] {}));

And you need to register class definitions before initialization of hazelcast, see following doc.

http://docs.hazelcast.org/docs/3.6/manual/html-single/index.html#null-portable-serialization

Regards.
--
Sancar Koyunlu
Software Engineer, Hazelcast

Avinash G A

unread,
Mar 4, 2016, 2:34:23 AM3/4/16
to Hazelcast
Thanks Sancar,

Is there any way to register the class definition using HazelCastClient object? I am using spring and HazelcastInstance is the client.

I did this

ClassDefinition processorClassDefinition = new ClassDefinitionBuilder
 
(SerializerFactory.COMMON_ENTITY_PORTABLE_FACTORY, SerializerFactory.PROCESSOR_DTO_PORTABLE_CLASS_ID)
 
.addDoubleField("cores").addDoubleField("speed").build();
 
ClassDefinition hardwareProfileClassDefinition = new ClassDefinitionBuilder
 
(SerializerFactory.COMMON_ENTITY_PORTABLE_FACTORY, SerializerFactory.HARDWARE_PROFILE_DTO_PORTABLE_CLASS_ID)
 
.addPortableArrayField("processors", processorClassDefinition).build();
 hazelcastInstance
.getConfig().getSerializationConfig().addClassDefinition(hardwareProfileClassDefinition);


But got exception:-

java.lang.IllegalStateException: Failed to load ApplicationContext
 at org
.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124)
 at org
.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:83)
 at org
.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
 at org
.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
 at org
.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:228)
 at org
.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:230)
 at org
.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289)
 at org
.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
 at org
.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291)
 at org
.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:249)

 at org
.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:89)
 at org
.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
 at org
.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
 at org
.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
 at org
.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
 at org
.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
 at org
.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
 at org
.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
 at org
.junit.runners.ParentRunner.run(ParentRunner.java:363)
 at org
.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:193)
 at org
.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
 at org
.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
 at org
.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
 at org
.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
 at org
.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
 at org
.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hardwareProfileRepositoryCacheAspect': Invocation of init method failed; nested exception is java.lang.UnsupportedOperationException: Client cannot access cluster config!
 at org
.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:136)
 at org
.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:408)
 at org
.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570)
 at org
.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
 at org
.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
 at org
.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
 at org
.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
 at org
.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
 at org
.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
 at org
.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)
 at org
.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)
 at org
.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
 at org
.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:125)
 at org
.springframework.test.context.support.AbstractGenericContextLoader.loadContext(AbstractGenericContextLoader.java:60)
 at org
.springframework.test.context.support.AbstractDelegatingSmartContextLoader.delegateLoading(AbstractDelegatingSmartContextLoader.java:109)
 at org
.springframework.test.context.support.AbstractDelegatingSmartContextLoader.loadContext(AbstractDelegatingSmartContextLoader.java:261)
 at org
.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:98)
 at org
.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:116)
 
... 25 more
Caused by: java.lang.UnsupportedOperationException: Client cannot access cluster config!
 at com
.hazelcast.client.impl.HazelcastClientInstanceImpl.getConfig(HazelcastClientInstanceImpl.java:320)
 at com
.hazelcast.client.impl.HazelcastClientProxy.getConfig(HazelcastClientProxy.java:73)
 at com
.byteobject.cloudsanthe.dbclient.caching.aspect.HardwareProfileRepositoryCacheAspect.init(HardwareProfileRepositoryCacheAspect.java:78)

 at sun
.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun
.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun
.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java
.lang.reflect.Method.invoke(Unknown Source)

 at org
.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:354)
 at org
.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:305)
 at org
.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:133)
 
... 42 more


Is there any way to register class definitions using XML?

Regards,
--
Avinash
...

Avinash G A

unread,
Mar 4, 2016, 2:36:06 AM3/4/16
to Hazelcast

Caused by: java.lang.UnsupportedOperationException: Client cannot access cluster config!
 at com
.hazelcast.client.impl.HazelcastClientInstanceImpl.getConfig(HazelcastClientInstanceImpl.java:320)
 at com
.hazelcast.client.impl.HazelcastClientProxy.getConfig(HazelcastClientProxy.java:73)
 at com
.byteobject.cloudsanthe.dbclient.caching.aspect.HardwareProfileRepositoryCacheAspect.init(HardwareProfileRepositoryCacheAspect.java:78)
 at sun
.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun
.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
 at sun
.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java
.lang.reflect.Method.invoke(Unknown Source)
 at org
.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:354)
 at org
.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:305)
 at org
.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:133)
 
... 42 more





 at org
.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:<span style="color

M. Sancar Koyunlu

unread,
Mar 4, 2016, 2:41:52 AM3/4/16
to Hazelcast
It is not possible to configure via xml. 
You can use following doc to configure client programmatically in Spring.




--
You received this message because you are subscribed to the Google Groups "Hazelcast" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hazelcast+...@googlegroups.com.
To post to this group, send email to haze...@googlegroups.com.
Visit this group at https://groups.google.com/group/hazelcast.
To view this discussion on the web visit https://groups.google.com/d/msgid/hazelcast/2d4d3818-4951-4e62-8118-d204d7fe30cf%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages