views:

301

answers:

1

Hi , I use Eclipse with Websphere server .

I need to add a session listener . I added the class SessionListener.java in the package net.test . When I add the < listener > tag to the web.xml file , I get the folowing error :

Distribution of configuration failed.  See log for details.
  Error unmarshaling return; nested exception is: 
    java.net.MalformedURLException: no protocol: Files/IBM/WebSphere/AppServerCommunityEdition/repository/org/apache/geronimo/modules/geronimo-common/2.0.1/geronimo-common-2.0.1.jar
  java.rmi.UnmarshalException: Error unmarshaling return; nested exception is: 
    java.net.MalformedURLException: no protocol: Files/IBM/WebSphere/AppServerCommunityEdition/repository/org/apache/geronimo/modules/geronimo-common/2.0.1/geronimo-common-2.0.1.jar
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:141)
    at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source)
    at javax.management.remote.rmi.RMIConnectionImpl_Stub.invoke(RMIConnectionImpl_Stub.java:400)
    at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.invoke(RMIConnector.java:984)
    at org.apache.geronimo.system.jmx.KernelDelegate.invokeKernel(KernelDelegate.java:890)
    at org.apache.geronimo.system.jmx.KernelDelegate.invoke(KernelDelegate.java:551)
    at org.apache.geronimo.deployment.plugin.local.AbstractDeployCommand.doDeploy(AbstractDeployCommand.java:116)
    at org.apache.geronimo.deployment.plugin.local.DistributeCommand.run(DistributeCommand.java:61)
    at java.lang.Thread.run(Thread.java:810)
  Caused by: java.net.MalformedURLException: no protocol: Files/IBM/WebSphere/AppServerCommunityEdition/repository/org/apache/geronimo/modules/geronimo-common/2.0.1/geronimo-common-2.0.1.jar
    at java.net.URL.<init>(URL.java:602)
    at java.net.URL.<init>(URL.java:499)
    at java.net.URL.<init>(URL.java:448)
    at sun.rmi.server.LoaderHandler.pathToURLs(LoaderHandler.java:762)
    at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:162)
    at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:632)
    at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:259)
    at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:212)
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1568)
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1490)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1723)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1932)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1856)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1743)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:363)
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:231)
    ... 9 more

This is my web.xml file :

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>odyssey</display-name>

  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <listener>
        <listener-class>net.testt.SessionListener</listener-class>
    </listener>  

</web-app>

When I remove the tag , everything works fine ... Please help ... I really need that listener to do the cleanup works to keep track of the current ONLINE USERS ...

+1  A: 

This is a (nasty) bug in WASCE. It should have been "file:///C:/Program Files/IBM/....". The file:// is here the protocol which was missing due to the space in Program Files. The IBM guys should have quoted path names, but they apparently overlooked it.

To fix this problem, either install WASCE in a path without spaces, or upgrade to the latest version available.

BalusC
haha.. interesting. How does it relate to the listener though?
Bozho
It apparently (in)directly needs some stuff from geronimo-common JAR file.
BalusC
That's rite .. the path is c:/program files/ibm .. After installing wasce in c:/ the error disappeared .. thnx BalusC
theneoindian
You're welcome. Don't forget to mark the answer as accepted. Otherwise this topic will be poked up again and again @random. And you will also get +2 reputation points.
BalusC