在<eclipse </listener>中将<listener>添加到web.xml的问题

时间:2010-01-13 14:45:19

标签: eclipse jsp websphere listener

我将Eclipse与Websphere服务器一起使用。

我需要添加一个会话监听器。我在net.test包中添加了SessionListener.java类。当我添加&lt;听众&gt;标记到web.xml文件,我得到以下错误:

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

这是我的web.xml文件:

<?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>

当我删除标签时,一切正常......请帮助......我真的需要听众进行清理工作以跟踪当前的在线用户......

1 个答案:

答案 0 :(得分:1)

这是WASCE中的一个(讨厌的)错误。应该是"file:///C:/Program Files/IBM/...."。由于file://中的空格,Program Files是缺少的协议。 IBM的人应该引用路径名,但他们显然忽略了它。

要解决此问题,请在不带空格的路径中安装WASCE,或升级到可用的最新版本。