Hi i have a single topology class with main method in it. It starts zookeeper and run in eclispe right click run as java application. But i am trying it to be able to run through batch file i have tried
java -classpath jar-with-classes-and-dependency.jar com.demo.Topology
but this gives me exception like this.
Exception in thread "main" java.lang.NoClassDefFoundError:
backtype/storm/generated/AlreadyAliveException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) Caused by: java.lang.ClassNotFoundException:
backtype.storm.generated.AlreadyAliveException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
I think this is about missing any dependency.
Please help in running this topology class.
Try running like this...
pathToStorm/bin/storm jar ./target/jar-with-classes-and-dependency.jar com.demo.Topology.
And remember, you should build your jar before doing this step. You can build your jar by running
mvn clean install inside your storm project where your pom.xml file is located.
Related
I am trying to create a shopping cart application in SWING, which uses SOAP webservice to get items from DB.
I have generated WebService client using WSDL URL in eclipse (CXF implementation) and exported as JAR to add it as dependency in my Swing application.
Following code snippet calls my SOAP web service in Swing application:
ItemWebServiceService itemWebServiceService = new ItemWebServiceService(ItemWebServiceService.WSDL_LOCATION,SERVICE_NAME);
IItemServiceSEI itemWebService = itemWebServiceService.getItemWebServicePort();
try
{
ilv = new ItemListView(itemWebService.fetchItems(productID), this);
} catch (ApplicationException_Exception e)
{
e.printStackTrace();
}
above code works fine, when i run my application in Netbeans. But when i run my application from JAR file or as a web start, i am getting following error.
Exception in thread "AWT-EventQueue-2" java.lang.NullPointerException
at org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:85)
at org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:218)
at org.apache.cxf.jaxws.ServiceImpl.initialize(ServiceImpl.java:161)
at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:129)
at org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:99)
at javax.xml.ws.Service.<init>(Unknown Source)
at com.boeing.petstore.web.ws.ItemWebServiceService.<init>(ItemWebServiceService.java:43)
at com.boeing.patterns.petstore.widgets.WorkView.productSeleced(WorkView.java:113)
at com.boeing.patterns.petstore.widgets.ProductListView$1.run(ProductListView.java:92)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
I verified my dist folder, all libraries are available in lib folder and all these jars in the classpath declaration of META-INF.MF file.
Dist Folder contains:
lib Folder
JNLP file
App Jar
Did anyone have idea about the above problem?
I too face the same problem kindly refer the below link this may help you
JAX-WS = When Apache CXF is installed it "steals" default JDK JAX-WS implementation, how to solve?
Im trying to setup solr cluster on jetty but with a separate standalone(not ensemble zookeeper). I manage to start zooKeeper, but I cannot upload config to zooKeeper - I get the following error:
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFacto
ry
at org.apache.solr.common.cloud.SolrZkClient.<clinit>(SolrZkClient.java:
66)
at org.apache.solr.cloud.ZkCLI.main(ZkCLI.java:163)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more
I use cloud-scripts - zkcli.bat. Any idea why???
You have to provide one of the various SLF4J implementation .jar files in the classpath..
Try adding slf4j-log4j12.jar and slf4j-api-1.6.6.jar to lib directory of Jetty.
I get an error while trying an application on Google App Engine as below...any idea why?
My hunch is since I'm behind a proxy, I'm not able to connect to the appengine. If thats the case how do i set it up?
Initializing App Engine server
Apr 25, 2012 1:07:32 PM com.google.appengine.tools.info.RemoteVersionFactory getVersion
INFO: Unable to access http://appengine.google.com/api/updatecheck?runtime=java&release=1.5.4×tamp=1315604504&api_versions=['1.0']
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.<init>(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at com.google.appengine.tools.info.RemoteVersionFactory.getVersion(RemoteVersionFactory.java:76)
at com.google.appengine.tools.info.UpdateCheck.checkForUpdates(UpdateCheck.java:99)
at com.google.appengine.tools.info.UpdateCheck.doNagScreen(UpdateCheck.java:174)
at com.google.appengine.tools.info.UpdateCheck.maybePrintNagScreen(UpdateCheck.java:142)
at com.google.appengine.tools.development.gwt.AppEngineLauncher.maybePerformUpdateCheck(AppEngineLauncher.java:115)
at com.google.appengine.tools.development.gwt.AppEngineLauncher.start(AppEngineLauncher.java:81)
at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509)
at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1068)
at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:811)
at com.google.gwt.dev.DevMode.main(DevMode.java:311)
By default the development server checks for updates during startup, you can disable it using --disable_update_check
You can use the appcfg command from appengine-sdk to pass the proxy. For me it worked.
Example :
appcfg --proxy=10.35.71.201:8080 update ../target/exploded_war
At the end of https://code.google.com/p/googleappengine/issues/detail?id=3131
Solution: create a file with name: .appcfg_no_nag
In the user path System.getProperty("user.home"), disable the update action.
I am using a Hyperic SIGAR library as third party lib in my installation program.
My installation program unpacks all third lib files to the %TEMP%\\user folder.
On English OS's everything works great, but when i tried to run my setup program on Spanish Os,
I've encountered the following error:
the java library includes the sigar.jar:
java.class.path=C:\DOCUME~1\Spanish Letters\CONFIG~1\Temp\e4j58.tmp_dir\user\sigar.jar
My installation program supports WinXP, WIN7 OS's.
The Error is:
no sigar-x86-winnt.dll in java.library.path
org.hyperic.sigar.SigarException: no sigar-x86-winnt.dll in java.library.path
at org.hyperic.sigar.Sigar.loadLibrary(Sigar.java:172)
at org.hyperic.sigar.Sigar.<clinit>(Sigar.java:100)
at I4jScript_Internal_1.eval(I4jScript_Internal_1.java:23)
at I4jScript_Internal_1.evaluate(I4jScript_Internal_1.java:79)
at com.install4j.runtime.installer.helper.Script.evaluate(Unknown Source)
at com.install4j.runtime.installer.ContextImpl.runScript(Unknown Source)
at com.install4j.runtime.installer.ContextImpl.runScript(Unknown Source)
at com.install4j.runtime.beans.actions.control.RunScriptAction.execute(Unknown Source)
at com.install4j.runtime.beans.actions.SystemInstallOrUninstallAction.install(Unknown Source)
at com.install4j.runtime.installer.InstallerContextImpl.performActionInt(Unknown Source)
at com.install4j.runtime.installer.ContextImpl.performAction(Unknown Source)
at com.install4j.runtime.installer.controller.Controller.executeActions(Unknown Source)
at com.install4j.runtime.installer.controller.Controller.handleCommand(Unknown Source)
at com.install4j.runtime.installer.controller.Controller.handleStartup(Unknown Source)
at com.install4j.runtime.installer.controller.Controller.start(Unknown Source)
at com.install4j.runtime.installer.Installer.main(Unknown Source)
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 com.exe4j.runtime.LauncherEngine.launch(Unknown Source)
at com.exe4j.runtime.WinLauncher.main(Unknown Source)
at com.install4j.runtime.launcher.WinLauncher.main(Unknown Source)'
Is someone already encountered a similar error and can advise?
Thanks.
you should set System property (java.library.path)
ex) java ... -Djava.library.path=../lib/sigar/lib ...
java.library.path is folder that contain the sigar-x86-winnt.dll
https://forums.oracle.com/forums/thread.jspa?threadID=1299532
You could also add to java.path.library at runtime programmatically.
System.setProperty("java.library.path", System.getProperty("java.library.path")+File.pathSeparator+pathToYourDLL);
//set sys_paths to null
final Field sysPathsField = ClassLoader.class.getDeclaredField("sys_paths");
sysPathsField.setAccessible(true);
sysPathsField.set(null, null);
A very good explanation is found at : http://fahdshariff.blogspot.jp/2011/08/changing-java-library-path-at-runtime.html
sigar-x86-winnt.dll put in the current user directory, it will work
as discussed in the docs, SIGAR uses JNI underneath. You have to include appropriate JNI file in the path (file is usually displayed in the stack trace).
If you are using maven to build the project, you should edit pom.xml to add this file to the path(alas, you cant specify artifact and assume it is going to be in path)
<!-- add sigar dll to java path -->
<configuration>
<forkMode>once</forkMode>
<workingDirectory>target</workingDirectory>
<argLine>-Djava.library.path=${basedir}/lib</argLine>
</configuration>
I am trying to complete a tutorial about easymock to use it for the first time.
http://www.vogella.de/articles/EasyMock/article.html
I am using
- Eclipse IDE for Java Developers ( Build id: 20100218-1602)
- Junit 4 plugin
- easymock 3.0
After creating a project as described below and executing as a JUNIT testI get the error.
**java.lang.NoClassDefFoundError: net/sf/cglib/proxy/Enhancer**
What is this error and how can I fix it? It occurs on the line
EasyMock.replay(calcMethod);
java.lang.NoClassDefFoundError: net/sf/cglib/proxy/Enhancer at
org.easymock.internal.ClassExtensionHelper.getControl(ClassExtensionHelper.java:57)
at org.easymock.EasyMock.getControl(EasyMock.java:2068) at
org.easymock.EasyMock.replay(EasyMock.java:1970) at
income.IncomeCalculatorTest.testCalc1(IncomeCalculatorTest.java:33)
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:44)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:220) at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.ClassNotFoundException:
net.sf.cglib.proxy.Enhancer at
java.net.URLClassLoader$1.run(Unknown Source) at
java.security.AccessController.doPrivileged(Native Method) at
java.net.URLClassLoader.findClass(Unknown Source) at
java.lang.ClassLoader.loadClass(Unknown Source) at
sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at
java.lang.ClassLoader.loadClass(Unknown Source) ... 28 more
yeah, i think you need it.
http://cglib.sourceforge.net/
its aslo probably in some sort of dependencies directory in the easymock download
From EasyMock 3.0 page:
To perform class mocking, also add Objenesis and Cglib to your classpath.