Skip to Main Content

Java APIs

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

"Software caused connection abort: recv failed" from Applet in IE to JBoss

843793Sep 30 2005 — edited Oct 2 2005
Hi

We have an application hosted as applets on our web-site, but offer the
same application to customers as a "standalone" off-line version. This
off-line version is the same code-base, deploy and HTML but run from the
local file system (in the absence of a web-server).

I have a J2EE Jasper Reporting framework running in JBoss. On the off-line
product JBoss runs on the same machine.

The on-line version works perfectly in both IE and FireFox.

The off-line version works perfectly in FireFox, but alas, NOT in IE!

First, here's some code:
private JasperPrint generateReport() {
		Hashtable enva = new Hashtable();
		System.out.println("enva.put(\"java.naming.factory.initial\", \"org.jnp.interfaces.NamingContextFactory\");");
		enva.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
		System.out.println("enva.put(\"java.naming.factory.url.pkgs\", \"org.jboss.naming:org.jnp.interfaces\");");
		enva.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
		int port = 1099;
		String host = "127.0.0.1";
		System.out.println("enva.put(\"java.naming.provider.url\", \"jnp:// " + host + ":" + port);
		enva.put("java.naming.provider.url", "jnp:// " + host + ":" + port);
		try {
			System.out.println("Context ictx = new InitialContext(enva);");
			Context ictx = new InitialContext(enva);
			System.out.println("Object o = ictx.lookup(\"java:/SessionReport\");");
			Object o = ictx.lookup("java:/SessionReport");
			System.out.println("SessionReportControllerHome home = (SessionReportControllerHome) PortableRemoteObject.narrow(o, SessionReportControllerHome.class);");
			SessionReportControllerHome home = (SessionReportControllerHome) PortableRemoteObject.narrow(o, SessionReportControllerHome.class);
			System.out.println("SessionReportController remote = home.create();");
			SessionReportController remote = home.create();
			PSIberRDSParameterSEIFSAPensionProvidendFund rVO = new PSIberRDSParameterSEIFSAPensionProvidendFund();
			//call the function on remote
			try {
				JasperPrint jasperPrint = new JasperPrint(); 
				JasperVO jasperVO = remote.generateMyJasperReport(rVO);
				jasperPrint = jasperVO.getJasperPrint();
				return jasperPrint; 
			} catch (Exception re) {
				System.err.println("remote exception is " + re.getMessage());
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
This function returns a net.sf.jasperreports.engine.JasperPrint object wich I
feed to the JasperViewer.

Here's the output in my Java console:
enva.put("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
enva.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
enva.put("java.naming.provider.url", "jnp:// 127.0.0.1:1099
Context ictx = new InitialContext(enva);
Object o = ictx.lookup("java:/SessionReport");
javax.naming.CommunicationException [Root exception is java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is:
java.net.SocketException: Software caused connection abort: recv failed]
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:707)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
at javax.naming.InitialContext.lookup(Unknown Source)
at psiber.v2.pp.psiberworks.server.MessageRouter_PAY.callSEIFSAPensionProvidentFundReport(MessageRouter_PAY.java:15159)
at psiber.v2.pp.psiberworks.server.MessageRouter_PAY.getPayAppletDataImpl(MessageRouter_PAY.java:14895)
at psiber.v2.pp.psiberworks.server.MessageRouter_PAY.getAppletDataImpl(MessageRouter_PAY.java:14228)
at psiber.v2.pp.psiberworks.server.MessageRouter.getAppletData(MessageRouter.java:135)
at psiber.v2.pp.psiberworks.server.RemoteSessionImpl.getAppletDataImpl(RemoteSessionImpl.java:734)
at psiber.v2.pp.psiberworks.server.RemoteSessionImpl.access$0(RemoteSessionImpl.java:710)
at psiber.v2.pp.psiberworks.server.RemoteSessionImpl$1.exec(RemoteSessionImpl.java:668)
at psiber.v2.pp.psiberworks.server.SynchronizedAccessController.doExecuteQuery(SynchronizedAccessController.java:61)
at psiber.v2.pp.psiberworks.server.SynchronizedAccessController.executeQuery(SynchronizedAccessController.java:137)
at psiber.v2.pp.psiberworks.server.RemoteSessionImpl.getAppletData(RemoteSessionImpl.java:690)
at psiber.v2.pp.psiberworks.client.RemoteSessionProxy.getAppletData(RemoteSessionProxy.java:109)
at psiber.v2.pp.psiberworks.client.hr.psiberpay.PsiberPayReportWizardApplet.getAppletData(PsiberPayReportWizardApplet.java:7094)
at psiber.v2.pp.psiberworks.client.hr.psiberpay.PsiberPayReportWizardApplet.callSEIFSAPensionProvidentFundReport(PsiberPayReportWizardApplet.java:14492)
at psiber.v2.pp.psiberworks.client.hr.psiberpay.PsiberPayReportWizardApplet.processSelectedReport(PsiberPayReportWizardApplet.java:14091)
at psiber.v2.pp.psiberworks.client.hr.psiberpay.PsiberPayReportWizardApplet.onNextButtonPressed(PsiberPayReportWizardApplet.java:13229)
at psiber.v2.pp.psiberworks.client.hr.psiberpay.PsiberPayReportWizardApplet.actionPerformed(PsiberPayReportWizardApplet.java:361)
at java.awt.Button.processActionEvent(Unknown Source)
at java.awt.Button.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(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)
Caused by: java.rmi.UnmarshalException: Error unmarshaling return header; nested exception is:
java.net.SocketException: Software caused connection abort: recv failed
at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:610)
... 28 more
Caused by: java.net.SocketException: Software caused connection abort: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.fill(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at java.io.DataInputStream.readByte(Unknown Source)
... 32 more
remote exception is null


You'll see just as the InitialContext.lookup is executed a
javax.naming.CommunicationException is thrown.

I have re-tried changing hostnames, ip addresses etc.
Port 1099 is allowed on Personal Firewall and I even diabled it to be sure.

Like I said, it works fine in FireFox.

I'm running Windows XP Version 5.1 (Build 2600.xpsp_sp2_gdr.050501-1519 : Service Pack 2)
and IE Version 6.0.2900.2180.xpsp_sp2_gdr.050501-1519
and SUN JAVA Version 1.4.2_06 (build 1.4.2_06-b03)

I have tested this on 1.5.0 (build 15.0_02-b09) with the same result.

Please help! F1! F1! F1!

Thanks in advance :D
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 30 2005
Added on Sep 30 2005
1 comment
1,507 views