Opened 8 months ago

Closed 8 months ago

Last modified 8 months ago

#2228 closed defect (fixed)

I2Ping not working

Reported by: Reportage Owned by:
Priority: minor Milestone: 0.9.35
Component: streaming Version: 0.9.34
Keywords: i2ping i2ptunnel Cc:
Parent Tickets:

Description

java.lang.IllegalStateException: java.lang.ClassNotFoundException: net.i2p.client.streaming.impl.I2PSocketManagerFull
	at net.i2p.client.streaming.I2PSocketManagerFactory.createManager(I2PSocketManagerFactory.java:268)
	at net.i2p.client.streaming.I2PSocketManagerFactory.createManager(I2PSocketManagerFactory.java:248)
	at net.i2p.client.streaming.I2PSocketManagerFactory.createDisconnectedManager(I2PSocketManagerFactory.java:206)
	at net.i2p.i2ptunnel.I2PTunnelClientBase.buildSocketManager(I2PTunnelClientBase.java:429)
	at net.i2p.i2ptunnel.I2PTunnelClientBase.buildSocketManager(I2PTunnelClientBase.java:395)
	at net.i2p.i2ptunnel.I2PTunnelClientBase.getSocketManager(I2PTunnelClientBase.java:309)
	at net.i2p.i2ptunnel.I2PTunnelClientBase.getSocketManager(I2PTunnelClientBase.java:255)
	at net.i2p.i2ptunnel.I2PTunnelClientBase.verifySocketManager(I2PTunnelClientBase.java:239)
	at net.i2p.i2ptunnel.I2PTunnelClientBase.startRunning(I2PTunnelClientBase.java:528)
	at net.i2p.i2ptunnel.I2PTunnel.runPing(I2PTunnel.java:1687)
	at net.i2p.i2ptunnel.I2PTunnel.runCommand(I2PTunnel.java:440)
	at net.i2p.i2ptunnel.I2PTunnel.<init>(I2PTunnel.java:282)
	at net.i2p.i2ptunnel.I2PTunnel.<init>(I2PTunnel.java:150)
	at net.i2p.i2ptunnel.I2PTunnel.main(I2PTunnel.java:131)
Caused by: java.lang.ClassNotFoundException: net.i2p.client.streaming.impl.I2PSocketManagerFull
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at net.i2p.client.streaming.I2PSocketManagerFactory.createManager(I2PSocketManagerFactory.java:259)
	... 13 more
CRIT [main] …etManagerFactory: Error loading net.i2p.client.streaming.impl.I2PSocketManagerFull
java.lang.ClassNotFoundException: net.i2p.client.streaming.impl.I2PSocketManagerFull
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:264)
	at net.i2p.client.streaming.I2PSocketManagerFactory.createManager(I2PSocketManagerFactory.java:259)
	at net.i2p.client.streaming.I2PSocketManagerFactory.createManager(I2PSocketManagerFactory.java:248)
	at net.i2p.client.streaming.I2PSocketManagerFactory.createDisconnectedManager(I2PSocketManagerFactory.java:206)
	at net.i2p.i2ptunnel.I2PTunnelClientBase.buildSocketManager(I2PTunnelClientBase.java:429)
	at net.i2p.i2ptunnel.I2PTunnelClientBase.buildSocketManager(I2PTunnelClientBase.java:395)
	at net.i2p.i2ptunnel.I2PTunnelClientBase.getSocketManager(I2PTunnelClientBase.java:309)
	at net.i2p.i2ptunnel.I2PTunnelClientBase.getSocketManager(I2PTunnelClientBase.java:255)
	at net.i2p.i2ptunnel.I2PTunnelClientBase.verifySocketManager(I2PTunnelClientBase.java:239)
	at net.i2p.i2ptunnel.I2PTunnelClientBase.startRunning(I2PTunnelClientBase.java:528)
	at net.i2p.i2ptunnel.I2PTunnel.runPing(I2PTunnel.java:1687)
	at net.i2p.i2ptunnel.I2PTunnel.runCommand(I2PTunnel.java:440)
	at net.i2p.i2ptunnel.I2PTunnel.<init>(I2PTunnel.java:282)
	at net.i2p.i2ptunnel.I2PTunnel.<init>(I2PTunnel.java:150)
	at net.i2p.i2ptunnel.I2PTunnel.main(I2PTunnel.java:131)

Subtickets

Change History (2)

comment:1 Changed 8 months ago by zzz

  • Component changed from apps/i2ptunnel to streaming
  • Milestone changed from undecided to 0.9.35
  • Resolution set to fixed
  • Status changed from new to closed

You didn't say how you invoked the i2ptunnel CLI, but you didn't include the streaming jar in the classpath.

The way to do it with the classpath is:

java -cp i2ptunnel.jar:mstreaming.jar:streaming.jar:i2p.jar net.i2p.i2ptunnel.I2PTunnel -cli

Looks like by specifying the jar only, i.e.:

java -jar i2ptunnel.jar -cli

the mstreaming jar doesn't reference the streaming jar. That must have been what you did?
Fixed in 12c221c000a5e2409643372d87df862d0da66291 to be 0.9.34-15

comment:2 Changed 8 months ago by Reportage

Yes, I specified the jar only, and it's fixed now. Thanks.

Given that the ping command opens tunnels, it would be helpful to set the tunnel name to "I2Ping" rather than the truncated destination, for the sidebar and the /tunnels page.

This could also be useful in SusiDNS for automated/scheduled and manual pinging of hosts, with the results parsed to display a percentage bar in the main addressbook listing, and with more information on the details page.

For hosts that fail to respond after a configured period, the option to move them to a separate addressbook for unresponsive hosts, or delete them from the addressbook, would enhance addressbook functionality.

Additionally, when attempting to access an unresponsive host in a browser, the proxy error could be enhanced to indicate the last recorded response time and health of the host to improve the overall user experience.

(See also: #2010)

Note: See TracTickets for help on using tickets.