在MyEclipse中通过修改.mymetadata,更改webroot后(已重启MyEclipse)  <attributes>
    <attribute name="webrootdir" value="/web" />
</attributes>jboss启动时,发现原本在web.xml中配置的一些servlet以及listener都访问不到了,
可以基本断定为webroot更改问题,
跪求有经验的大侠赐教,100分给!!!

解决方案 »

  1.   

    MyEclipse工程的配置文件 关于webRoot的配置有好几处呢,需要都做修改,你只改了1处而已,
    需要修改的文件都在工程下边。 仔细找找 , 我改过很多次也没出现你这情况,。
      

  2.   

    一共就.classpath,.project这些文件啊?没有别的了,请大侠明示!
      

  3.   

    只要改这两个.classpath,.project就可以了! 下面是两个类似的配置
    .classpath:
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="lib" path="F:/Workspaces/project/WebRoot/WEB-INF/lib/acegi-security-1.0.1.jar"/>
    </classpath>.project:
    <?xml version="1.0" encoding="UTF-8"?>
    <projectDescription>
    <name>project</name> ------》工程名
    <comment></comment>
    <projects>
    </projects>
    <buildSpec>
    <buildCommand>
    <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
    <arguments>
    </arguments>
    </buildCommand>
    <buildCommand>
    <name>com.genuitec.eclipse.j2eedt.core.WebClasspathBuilder</name>
    <arguments>
    </arguments>
    </buildCommand>
    <buildCommand>
    <name>org.eclipse.jdt.core.javabuilder</name>
    <arguments>
    </arguments>
    </buildCommand>
    <buildCommand>
    <name>com.genuitec.eclipse.j2eedt.core.J2EEProjectValidator</name>
    <arguments>
    </arguments>
    </buildCommand>
    <buildCommand>
    <name>com.genuitec.eclipse.j2eedt.core.DeploymentDescriptorValidator</name>
    <arguments>
    </arguments>
    </buildCommand>
    <buildCommand>
    <name>org.eclipse.wst.validation.validationbuilder</name>
    <arguments>
    </arguments>
    </buildCommand>
    </buildSpec>
    <natures>
    <nature>com.genuitec.eclipse.j2eedt.core.webnature</nature>
    <nature>org.eclipse.jdt.core.javanature</nature>
    <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
    </natures>
    </projectDescription>
      

  4.   

    楼上的大侠 这是工程的名字啊 和web根目录有关么?!我检查了.project 和 .classpath 没有和webroot或是webrootdir相关的内容啊
      

  5.   

    问题继续
    同样的这个war包,在我本地jboss中可以发布成功,但是到了同事的jboss上,
    总是报这些web.xml中配置的servlet以及listener都访问不到!
    更诡异的是,我俩的jboss可以说是完全一致,是拷贝过来的!
    ================================================================================
    附web.xml<?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>    <display-name>sim-monitor</display-name>
        <description>BlazeDS Application</description> <context-param>
    <param-name>flex.class.path</param-name>
    <param-value>/WEB-INF/flex/hotfixes,/WEB-INF/flex/jars</param-value>
    </context-param>

    <context-param>
    <param-name>webAppRootKey</param-name>
    <param-value>sim-monitor.root</param-value>
    </context-param> <!--
    - Location of the Log4J config file, for initialization and refresh checks.
    - Applied by Log4jConfigListener.
    -->
    <context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>/WEB-INF/config/log4j.xml</param-value>
    </context-param> <!--
    - Location of the XML file that defines the root application context.
    - Applied by ContextLoaderServlet.
     -->
    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
    /WEB-INF/context/applicationContext.xml
    /WEB-INF/context/dataAccessContext.xml
    /WEB-INF/context/dataSourceContext.xml
    </param-value>
    </context-param>

    <filter>
    <filter-name>Encoding</filter-name>
    <filter-class>
    com.travelsky.sim.web.config.EncodingFilter
    </filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>GBK</param-value>
    </init-param>
    </filter>
    <filter>
    <filter-name>SessionFilter</filter-name>
    <filter-class>
    com.travelsky.sim.web.config.SessionFilter
    </filter-class>
    <init-param>
    <param-name>enter</param-name>
    <param-value>Logon.do</param-value>
    </init-param>
    <init-param>
    <param-name>leave</param-name>
    <param-value>Logout.do</param-value>
    </init-param>
    </filter>
    <filter>
    <filter-name>SessionViewFilter</filter-name>
    <filter-class>
    org.springframework.orm.hibernate.support.OpenSessionInViewFilter
    </filter-class>
    <init-param>
    <param-name>singleSession</param-name>
    <param-value>false</param-value>
    </init-param>
    </filter>
    <filter-mapping>
    <filter-name>Encoding</filter-name>
    <servlet-name>action</servlet-name>
    </filter-mapping>
    <filter-mapping>
    <filter-name>SessionFilter</filter-name>
    <servlet-name>action</servlet-name>
    </filter-mapping>
    <filter-mapping>
    <filter-name>SessionViewFilter</filter-name>
    <servlet-name>action</servlet-name>
    </filter-mapping>    <!-- Http Flex Session attribute and binding listener support -->
        <listener>
            <listener-class>flex.messaging.HttpFlexSession</listener-class>
        </listener>    <!-- MessageBroker Servlet -->
        <servlet>
            <servlet-name>MessageBrokerServlet</servlet-name>
            <display-name>MessageBrokerServlet</display-name>
            <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
            <init-param>
                <param-name>services.configuration.file</param-name>
                <param-value>/WEB-INF/flex/services-config.xml</param-value>
           </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        
        <servlet>
    <servlet-name>context</servlet-name>
    <servlet-class>
    org.springframework.web.context.ContextLoaderServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>
     
       <servlet>
         <servlet-name>action</servlet-name>
         <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
         <init-param>
           <param-name>config</param-name>
           <param-value>/WEB-INF/struts/struts-config.xml</param-value>
         </init-param>
         <init-param>
           <param-name>debug</param-name>
           <param-value>3</param-value>
        </init-param>
         <init-param>
           <param-name>detail</param-name>
           <param-value>3</param-value>
         </init-param>     <init-param>
            <param-name>initApplicationScopeCreatorsAtStartup</param-name>
            <param-value>true</param-value>
    </init-param>

         <load-on-startup>0</load-on-startup>
       </servlet>
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>    <servlet-mapping>
            <servlet-name>MessageBrokerServlet</servlet-name>
            <url-pattern>/messagebroker/*</url-pattern>
        </servlet-mapping>    <welcome-file-list>
            <welcome-file>flexOutput/main.html</welcome-file>
            <welcome-file>flexOutput/main.htm</welcome-file>
        </welcome-file-list> 
    </web-app>
      

  6.   

    报错信息 如下,有关Flex的,
    William  15:39:40
    Error configuring application listener of class flex.messaging.HttpFlexSession
    java.lang.ClassNotFoundException: flex.messaging.HttpFlexSession
    at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3607)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4097)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at org.apache.commons.modeler.BaseModelMBean.invoke(BaseModelMBean.java:503)
    at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:150)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
    at org.apache.catalina.core.StandardContext.init(StandardContext.java:5013)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at org.apache.commons.modeler.BaseModelMBean.invoke(BaseModelMBean.java:503)
    at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:150)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
    at org.jboss.web.tomcat.tc5.TomcatDeployer.performDeployInternal(TomcatDeployer.java:274)
    at org.jboss.web.tomcat.tc5.TomcatDeployer.performDeploy(TomcatDeployer.java:93)
    at org.jboss.web.AbstractWebDeployer.start(AbstractWebDeployer.java:374)
    at org.jboss.web.WebModule.startModule(WebModule.java:62)
    at org.jboss.web.WebModule.startService(WebModule.java:40)
    at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:272)
    at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:222)
    at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:144)
    at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
    at org.jboss.mx.server.Invocation.invoke(Invocation.java:72)
    at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:249)
    at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
    at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:911)
    貌似是lib包找不到,实际上问题不是如此,因为我们已经在发布的war中做了对比