i was using the Eclipse IDE and adding the Curator JAR's as External JAR. It resolves for curator framework , curator client etc
The code i have is nothing but the sample PathCacheExample.java code from the examples posted in curator.apache.org Let me try it using maven instead. On Wed, Mar 9, 2016 at 6:09 PM, Jordan Zimmerman <[email protected] > wrote: > Post your code along with whatever build scripts you’re using to Github or > something similar and we’ll have a look. Are you using Maven? Gradle? How > are you putting your dependencies together? > > On Mar 9, 2016, at 9:04 PM, s influxdb <[email protected]> wrote: > > i tried all the curator libraries . still same result . TestingServer or > the PathCache isn't working > > On Wed, Mar 9, 2016 at 5:22 PM, s influxdb <[email protected]> wrote: > >> Ok let me try that. >> >> On another note this piece of nodecache code works >> >> final NodeCache nodeCache = new NodeCache(client, PATH); >> nodeCache.getListenable().addListener(new >> NodeCacheListener() { >> @Override >> public void nodeChanged() throws Exception { >> ChildData currentData = >> nodeCache.getCurrentData(); >> System.out.println("data change watched, and >> current data = " + new String(currentData.getData())); >> } >> }); >> nodeCache.start(); >> Thread.sleep(50000); >> >> On Wed, Mar 9, 2016 at 5:20 PM, Cameron McKenzie <[email protected]> >> wrote: >> >>> You must have some old Curator stuff on your classpath. All of the >>> curator stuff has an org.apache package prefix. It was ported from Netflix >>> some time ago. >>> >>> On Thu, Mar 10, 2016 at 12:15 PM, s influxdb <[email protected]> >>> wrote: >>> >>>> I see the TestingServer class in import >>>> com.netflix.curator.test.TestingServer; >>>> >>>> In the sample file i see it as import >>>> org.apache.curator.test.TestingServer; >>>> >>>> Even then i get the below error while instantiating a TestingServer >>>> Class >>>> Default constructor cannot handle exception type Exception thrown by >>>> implicit super constructor. Must define an explicit constructor >>>> >>>> Then i tried the TestingCluster class >>>> static TestingCluster server = new TestingCluster(); >>>> >>>> That gives me a class not found exception >>>> Exception in thread "main" java.lang.NoClassDefFoundError: >>>> javassist/NotFoundException >>>> at >>>> com.netflix.curator.test.TestingCluster.<clinit>(TestingCluster.java:40) >>>> >>>> >>>> On Wed, Mar 9, 2016 at 4:16 PM, Cameron McKenzie < >>>> [email protected]> wrote: >>>> >>>>> The TestingServer class is definitely in the curator-test jar, so you >>>>> must have some issue with your build / IDE environment. >>>>> >>>>> On Thu, Mar 10, 2016 at 11:13 AM, s influxdb <[email protected]> >>>>> wrote: >>>>> >>>>>> I tried importing the curator-test artifcactid and it this import >>>>>> org.apache.curator.test.TestingServer; doesn't resolve >>>>>> >>>>>> On Wed, Mar 9, 2016 at 2:58 PM, Cameron McKenzie < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Can you try running the PathCacheExample unmodified? It uses a >>>>>>> testing ZK server. But can you just confirm that this much works for >>>>>>> you? >>>>>>> Then maybe try and modify the sample so that it connects to your real ZK >>>>>>> instance? >>>>>>> >>>>>>> On Thu, Mar 10, 2016 at 9:53 AM, s influxdb <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>>> i did try adding a sleep and got the same result >>>>>>>> cache.start(); >>>>>>>> Thread.sleep(5000); >>>>>>>> list(cache); >>>>>>>> >>>>>>>> I am using curator libraries version 2.10 and zookeeper version >>>>>>>> 3..4.6 >>>>>>>> >>>>>>>> On Wed, Mar 9, 2016 at 2:19 PM, Cameron McKenzie < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> I think that you have a race condition between calling start() on >>>>>>>>> your cache and calling list(). Calling list() just checks the current >>>>>>>>> state >>>>>>>>> of the cache. If it hasn't communicated with ZK yet, it won't have any >>>>>>>>> data. Try putting in a sleep after the cache.start() call, before you >>>>>>>>> call >>>>>>>>> list(). >>>>>>>>> >>>>>>>>> On Thu, Mar 10, 2016 at 9:16 AM, s influxdb <[email protected] >>>>>>>>> > wrote: >>>>>>>>> >>>>>>>>>> sure >>>>>>>>>> >>>>>>>>>> main class >>>>>>>>>> RetryPolicy retryPolicy = new ExponentialBackoffRetry(1000, >>>>>>>>>> 3); >>>>>>>>>> client = >>>>>>>>>> CuratorFrameworkFactory.newClient("10.x.x.x", retryPolicy); >>>>>>>>>> client.start(); >>>>>>>>>> SyncData sd = new SyncData(client); >>>>>>>>>> sd.run(); >>>>>>>>>> >>>>>>>>>> the class that calls cache >>>>>>>>>> >>>>>>>>>> private static final String PATH = "/zktest"; >>>>>>>>>> >>>>>>>>>> public void run () throws Exception >>>>>>>>>> { >>>>>>>>>> try { >>>>>>>>>> >>>>>>>>>> cache = new PathChildrenCache(client, PATH, true); >>>>>>>>>> cache.start(); >>>>>>>>>> >>>>>>>>>> list(cache); >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> for(;;) { >>>>>>>>>> try { >>>>>>>>>> Thread.sleep(50000); >>>>>>>>>> } catch(InterruptedException e) { >>>>>>>>>> } >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> } >>>>>>>>>> finally { >>>>>>>>>> CloseableUtils.closeQuietly(cache); >>>>>>>>>> } >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> On Wed, Mar 9, 2016 at 1:30 PM, Cameron McKenzie < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> I just tried running the example and it seems to work fine for >>>>>>>>>>> me. I assume that you modified the code in some way for it to run >>>>>>>>>>> against a >>>>>>>>>>> proper ZK instance? Can you post it somewhere? >>>>>>>>>>> >>>>>>>>>>> On Thu, Mar 10, 2016 at 5:53 AM, s influxdb < >>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> ---------- Forwarded message ---------- >>>>>>>>>>>> From: s influxdb <[email protected]> >>>>>>>>>>>> Date: Wed, Mar 9, 2016 at 10:36 AM >>>>>>>>>>>> Subject: Re: curator pathcache >>>>>>>>>>>> To: Jordan Zimmerman <[email protected]> >>>>>>>>>>>> Cc: [email protected] >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Sorry for posting this in a wrong forum the first time. >>>>>>>>>>>> >>>>>>>>>>>> I recreated a new project and was running the example code here >>>>>>>>>>>> for cache : >>>>>>>>>>>> http://curator.apache.org/curator-examples/index.html >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Today when i try to replicathe NPE i am unable to do that . >>>>>>>>>>>> However when i call the list(cache) it prints the size of the >>>>>>>>>>>> data in the node as 0. This works with NodeCache >>>>>>>>>>>> >>>>>>>>>>>> Curator libraries are 2.10 and zookeeper version 3.4.6. >>>>>>>>>>>> >>>>>>>>>>>> Ideally i would like to use TreeCache but it gave me NPE too. >>>>>>>>>>>> My use case is setting a watch on the entire znode in the cluster >>>>>>>>>>>> and be >>>>>>>>>>>> notified about it. Thanks for replying to the mail. >>>>>>>>>>>> >>>>>>>>>>>> private static void list(PathChildrenCache cache) >>>>>>>>>>>> { >>>>>>>>>>>> if ( cache.getCurrentData().size() == 0 ) >>>>>>>>>>>> { >>>>>>>>>>>> System.out.println("* empty *"); >>>>>>>>>>>> } >>>>>>>>>>>> else >>>>>>>>>>>> { >>>>>>>>>>>> for ( ChildData data : cache.getCurrentData() ) >>>>>>>>>>>> { >>>>>>>>>>>> System.out.println(data.getPath() + " = " + new >>>>>>>>>>>> String(data.getData())); >>>>>>>>>>>> } >>>>>>>>>>>> } >>>>>>>>>>>> } >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Wed, Mar 9, 2016 at 9:44 AM, Jordan Zimmerman < >>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> Moving this to Curator’s list… >>>>>>>>>>>>> >>>>>>>>>>>>> Where do you get the NPE? Please send the stacktrace. >>>>>>>>>>>>> >>>>>>>>>>>>> -Jordan >>>>>>>>>>>>> >>>>>>>>>>>>> > On Mar 8, 2016, at 8:27 PM, s influxdb < >>>>>>>>>>>>> [email protected]> wrote: >>>>>>>>>>>>> > >>>>>>>>>>>>> > I am trying to run the path cahce and keep java NPE >>>>>>>>>>>>> > >>>>>>>>>>>>> > Running curator 2.9.0 libraries against a zookeeper 3.4.6 >>>>>>>>>>>>> cluster >>>>>>>>>>>>> > Even >>>>>>>>>>>>> > >>>>>>>>>>>>> > The samples are taken from the curator examples . >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> > public void run () throws Exception >>>>>>>>>>>>> > { >>>>>>>>>>>>> > try { >>>>>>>>>>>>> > >>>>>>>>>>>>> > pcache = new PathChildrenCache(client, PATH, >>>>>>>>>>>>> true); >>>>>>>>>>>>> > pcache.start(); >>>>>>>>>>>>> > >>>>>>>>>>>>> > addListener(cache); >>>>>>>>>>>>> > >>>>>>>>>>>>> > // list(pcache); >>>>>>>>>>>>> > >>>>>>>>>>>>> > pcache.close(); >>>>>>>>>>>>> > } >>>>>>>>>>>>> > finally { >>>>>>>>>>>>> > CloseableUtils.closeQuietly(cache); >>>>>>>>>>>>> > } >>>>>>>>>>>>> > } >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> > private static void addListener(PathChildrenCache cache) >>>>>>>>>>>>> > { >>>>>>>>>>>>> > // a PathChildrenCacheListener is optional. Here, >>>>>>>>>>>>> it's used just >>>>>>>>>>>>> > to log changes >>>>>>>>>>>>> > PathChildrenCacheListener listener = new >>>>>>>>>>>>> > PathChildrenCacheListener() >>>>>>>>>>>>> > { >>>>>>>>>>>>> > @Override >>>>>>>>>>>>> > public void childEvent(CuratorFramework client, >>>>>>>>>>>>> > PathChildrenCacheEvent event) throws Exception >>>>>>>>>>>>> > { >>>>>>>>>>>>> > switch ( event.getType() ) >>>>>>>>>>>>> > { >>>>>>>>>>>>> > case CHILD_ADDED: >>>>>>>>>>>>> > { >>>>>>>>>>>>> > System.out.println("Node added: " + >>>>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath())); >>>>>>>>>>>>> > break; >>>>>>>>>>>>> > } >>>>>>>>>>>>> > >>>>>>>>>>>>> > case CHILD_UPDATED: >>>>>>>>>>>>> > { >>>>>>>>>>>>> > System.out.println("Node changed: " >>>>>>>>>>>>> + >>>>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath())); >>>>>>>>>>>>> > break; >>>>>>>>>>>>> > } >>>>>>>>>>>>> > >>>>>>>>>>>>> > case CHILD_REMOVED: >>>>>>>>>>>>> > { >>>>>>>>>>>>> > System.out.println("Node removed: " >>>>>>>>>>>>> + >>>>>>>>>>>>> > ZKPaths.getNodeFromPath(event.getData().getPath())); >>>>>>>>>>>>> > break; >>>>>>>>>>>>> > } >>>>>>>>>>>>> > } >>>>>>>>>>>>> > } >>>>>>>>>>>>> > }; >>>>>>>>>>>>> > cache.getListenable().addListener(listener); >>>>>>>>>>>>> > } >>>>>>>>>>>>> > >>>>>>>>>>>>> > >>>>>>>>>>>>> > Here running a list returns empty size all the time >>>>>>>>>>>>> > >>>>>>>>>>>>> > private static void list(PathChildrenCache cache) >>>>>>>>>>>>> > { >>>>>>>>>>>>> > >>>>>>>>>>>>> > if ( cache.getCurrentData().size() == 0 ) >>>>>>>>>>>>> > { >>>>>>>>>>>>> > System.out.println("* empty *"); >>>>>>>>>>>>> > } >>>>>>>>>>>>> > else >>>>>>>>>>>>> > { >>>>>>>>>>>>> > for ( ChildData data : cache.getCurrentData() >>>>>>>>>>>>> ) >>>>>>>>>>>>> > { >>>>>>>>>>>>> > System.out.println(data.getPath() + " = " >>>>>>>>>>>>> + new >>>>>>>>>>>>> > String(data.getData())); >>>>>>>>>>>>> > } >>>>>>>>>>>>> > } >>>>>>>>>>>>> > } >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> > >
