Проблема добавления <listener>в web.xml в eclipse - PullRequest
0 голосов
/ 13 января 2010

Я использую Eclipse с сервером Websphere.

Мне нужно добавить слушателя сеанса. Я добавил класс SessionListener.java в пакет net.test. Когда я добавляю тег в файл 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 Ответ

1 голос
/ 13 января 2010

Это (неприятная) ошибка в WASCE. Это должно было быть "file:///C:/Program Files/IBM/....". file:// - это протокол, который отсутствовал из-за пробела в Program Files. Ребята из IBM должны были процитировать пути, но они, по-видимому, упустили это из виду.

Чтобы решить эту проблему, установите WASCE по пути без пробелов или обновите его до последней доступной версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...