我将Eclipse与Websphere服务器一起使用。
我需要添加一个会话监听器。我在net.test包中添加了SessionListener.java类。当我添加<听众>标记到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>
当我删除标签时,一切正常......请帮助......我真的需要听众进行清理工作以跟踪当前的在线用户......
答案 0 :(得分:1)
这是WASCE中的一个(讨厌的)错误。应该是"file:///C:/Program Files/IBM/...."
。由于file://
中的空格,Program Files
是缺少的协议。 IBM的人应该引用路径名,但他们显然忽略了它。
要解决此问题,请在不带空格的路径中安装WASCE,或升级到可用的最新版本。