-1

我所做的就是向 web.xml 添加一个新的 servlet,如下所示:

<servelt>
  <servlet-name>NewService</servlet-name>
  <servlet-class>app.server.NewServiceImpl</servlet-class>
</servelt>

<servlet-mapping>
  <servlet-name>NewService</servlet-name>
  <url-pattern>/MyApp/NewService</url-pattern>
</servlet-mapping>

但是,当我添加这些行并尝试运行我的应用程序时,我的其他 servlet 之一出现服务不可用错误。我确定课程路径是正确的,并且课程正在被遵守。我还在 web.xml 的 web-app 标记之间添加了这些。有谁知道为什么添加这个 servlet 会破坏我的应用程序?


编辑:

当我在计算机上启动我的应用程序时,出现此错误:

WARNING: Failed startup of context com.google.appengine.tools.development.DevAppEngineWebAppContext@6a360482{/,C:\Users\Admin\MyApp\war}
java.lang.IllegalStateException: No such servlet: NewService
    at org.mortbay.jetty.servlet.ServletHandler.updateMappings(ServletHandler.java:1026)
    at org.mortbay.jetty.servlet.ServletHandler.setServletMappings(ServletHandler.java:1110)
    at org.mortbay.jetty.webapp.WebXmlConfiguration.initialize(WebXmlConfiguration.java:306)
    at org.mortbay.jetty.webapp.WebXmlConfiguration.configure(WebXmlConfiguration.java:222)
    at org.mortbay.jetty.webapp.WebXmlConfiguration.configureWebApp(WebXmlConfiguration.java:180)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1247)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.jetty.Server.doStart(Server.java:224)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:197)
    at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:241)
    at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:148)
    at com.google.appengine.tools.development.gwt.AppEngineLauncher.start(AppEngineLauncher.java:97)
    at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509)
    at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1068)
    at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:811)
    at com.google.gwt.dev.DevMode.main(DevMode.java:311)
4

1 回答 1

1

在我看来,通过指定一个 servlet 映射,您将搁置其余部分。我认为你的 web.xml 应该是这样的:

    ... etc ...
    <servlet>
            <servlet-name>Servlet1</servlet-name>
            <servlet-class>com.Servlet1</servlet-class>
    </servlet>
    <servlet-mapping>
            <servlet-name>Servlet1</servlet-name>
            <url-pattern>/url1</url-pattern>
    </servlet-mapping>

    <servlet>
            <servlet-name>Servlet2</servlet-name>
            <servlet-class>com.Servlet2</servlet-class>
    </servlet>
    <servlet-mapping>
            <servlet-name>Servlet2</servlet-name>
            <url-pattern>/url2</url-pattern>
    </servlet-mapping>
    ... etc ...

您还有多少其他 servlet,哪些失败了?例如,只有一个在新的之前,只有一个之后,所有之前,所有之后,还是没有那么明显?

编辑:

查看您的错误消息,很明显运行时遇到了您的新 servlet 的问题。我想我看到了问题。

您发布了:

<servelt>
  <servlet-name>NewService</servlet-name>
  <servlet-class>app.server.NewServiceImpl</servlet-class>
</servelt>

更改serveltservlet查看是否有帮助。

于 2012-08-23T13:51:26.883 回答