java - GWT 中的 servlet 和路径出现错误 503 (Java)

标签 java xml gwt

我使用 IntelliJ,当我在 Web 浏览器中运行它时,它返回 503 错误:

  Problem accessing / MySampleApplication.html. Reason:
  Service Unavailable"*

该错误应该位于 XML 文件中的某个位置,并且 servlet 路径似乎有问题。

XML:

<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.8.0//EN"
        "http://gwtproject.org/doctype/2.8.0/gwt-module.dtd">
<module rename-to="MySampleApplication">

    <inherits name='com.google.gwt.user.User'/>

    <entry-point class='com.mySampleApplication.client.MySampleApplication'/>

    <servlet path='/MySampleApplicationService' class='com.mySampleApplication.server.ServiceImpl'/>>
    />

</module>

控制台:

Code server started in 12.55 s ms
2019-03-06 13:09:20.410:INFO:oejs.Server:main: Started @13836ms
Loading modules
   com.mySampleApplication.MySampleApplication
      Validating <servlet> tags for module 'MySampleApplication'
      For additional info see: file:/Users/simonemettesorensen/Downloads/gwt-2.8.2/doc/helpInfo/servletMappings.html
         [WARN] Module declares a servlet class 'com.mySampleApplication.server.ServiceImpl' with a mapping to '/MySampleApplication/MySampleApplicationService', but the web.xml has no corresponding mapping; please add the following lines to your web.xml:
<servlet-mapping>
  <servlet-name>com.mySampleApplication.MySampleApplication Service</servlet-name>
  <url-pattern>/MySampleApplication/MySampleApplicationService</url-pattern>
</servlet-mapping>
2019-03-06 13:09:20.549:INFO:oejs.Server:main: jetty-9.2.z-SNAPSHOT
Starting Jetty on port 8888
   [WARN] Failed startup of context c.g.g.d.s.j.WebAppContextWithReload@41aa7994{/,file:/Users/simonemettesorensen/Library/Caches/IntelliJIdea2018.2/gwt/%C3%B8velsemedrpc.9e5e27b2/oevelseMedRPC.6c3e6f2f/run/www/,STARTING}{/Users/simonemettesorensen/Library/Caches/IntelliJIdea2018.2/gwt/øvelsemedrpc.9e5e27b2/oevelseMedRPC.6c3e6f2f/run/www}
java.lang.NullPointerException
    at java.lang.String.compareTo(String.java:1155)
    at org.eclipse.jetty.servlet.ServletHolder.compareTo(ServletHolder.java:209)
    at org.eclipse.jetty.servlet.ServletHolder.compareTo(ServletHolder.java:70)
    at java.util.ComparableTimSort.countRunAndMakeAscending(ComparableTimSort.java:321)
    at java.util.ComparableTimSort.sort(ComparableTimSort.java:188)
    at java.util.Arrays.sort(Arrays.java:1246)
    at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:865)
    at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:298)
    at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1349)
    at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1342)
    at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:741)
    at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:505)
    at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:550)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
    at org.eclipse.jetty.server.handler.RequestLogHandler.doStart(RequestLogHandler.java:140)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
    at org.eclipse.jetty.server.Server.start(Server.java:387)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
    at org.eclipse.jetty.server.Server.doStart(Server.java:354)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:760)
    at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:636)
    at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:923)
    at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:706)
    at com.google.gwt.dev.DevMode.main(DevMode.java:432)
2019-03-06 13:09:22.470:INFO:oejs.ServerConnector:main: Started ServerConnector@1006dd06{HTTP/1.1}{127.0.0.1:8888}
2019-03-06 13:09:22.470:INFO:oejs.Server:main: Started @15896ms
Dev Mode initialized. Startup URL: 
http://127.0.0.1:8888/MySampleApplication.html
[ERROR] 503 - GET /MySampleApplication.html (127.0.0.1) 312 bytes
   Request Headers
      Host: 127.0.0.1:8888
      Connection: keep-alive
      Upgrade-Insecure-Requests: 1
      User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36
      Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
      Accept-Encoding: gzip, deflate, br
      Accept-Language: da-DK,da;q=0.9,en-US;q=0.8,en;q=0.7
   Response headers
      Date: Wed, 06 Mar 2019 12:09:22 GMT
      Cache-Control: must-revalidate,no-cache,no-store
      Content-Type: text/html; charset=ISO-8859-1
      Content-Length: 312

如果我添加这个,它不会运行,因为出现意外错误:“servlet 映射:

<servlet-mapping>
  <servlet-name>com.mySampleApplication.MySampleApplication Service</servlet-name>
  <url-pattern>/MySampleApplication/MySampleApplicationService</url-pattern>
</servlet-mapping>

我非常感谢任何帮助。

最佳答案

Simone,欢迎来到 GWT 世界!

如果该 servlet 使用 GWT-RPC,我强烈建议您考虑创建一个 JSON 端点。展望 future ,RPC 部分将被删除,JSON 是标准且面向 future 的。 它还更容易调试和模拟,使使用 GWT 变得更加容易。

关于java - GWT 中的 servlet 和路径出现错误 503 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55038944/

相关文章:

java - 将信息(和图像)从另一个 Java 程序写入 Jar 文件

java - 我的 CRC 算法有什么问题? ( java )

Java应用程序生命周期

xml - 没有 XML 模式的单 channel EDI 解析 - 可能吗?

gwt - 根据内容调整 GWT 面板的高度

java - 如何用动画平滑填充进度条

c# - SecurityElement.IsValidText 在 "&"上返回 true ... 为什么?

android - 为什么所有属性都有前缀?

GWT + 实体 + JPA + DTO + 推土机

java - GWT 中的 MVP 模式 : How to initialize Model/View and handle server requests in the Presenter?