gpt4 book ai didi

java - 如何让 Eclipse 识别动态 Web 服务代码中的更改

转载 作者:行者123 更新时间:2023-11-28 22:55:25 26 4
gpt4 key购买 nike

我正在尝试了解使用 Eclipse 设置 Web 服务的来龙去脉。我从 this tutorial 开始.我能够让一些东西工作,但我发现如果我对 Java 代码进行简单的更改并尝试重新运行它,我无法让更改后的版本运行。

我的类看起来像这样(禁止导入):

package com.mypackage.mytest;

@Path("/helloworld")
public class HelloWorld {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String sayPlainTextHello() {
return "Hello World #1";
}
@GET
@Produces(MediaType.TEXT_XML)
public String sayXMLHello() {
return "<?xml version=\"1.0\"?>" + "<hello> Hello World #2 RESTful Jersey"
+ "</hello>";
}
@GET
@Produces(MediaType.TEXT_HTML)
public String sayHtmlHello() {
return "<html> " + "<title>" + "Hello World RESTful #3 Jersey"
+ "</title>" + "<body><h1>" + "Hello World #3 RESTful Jersey"
+ "</body></h1>" + "</html> ";
}
}

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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>TestService</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>
<servlet>
<servlet-name>TestService</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.mypackage.mytest</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>TestService</servlet-name>
<url-pattern>/hello/*</url-pattern>
</servlet-mapping>
</web-app>

我已将其设置为使用 Tomcat 7.0、Servlet 版本 3.0。我通过在项目名称上选择“Run As -> Run On Server”来运行它。

如果我调出 http://localhost:8080/TestService/hello/helloworld , 它显示上述输出之一。

但是,如果我更改上述 Java 代码中的字符串常量(例如,将#1 更改为#4、#2 更改为#5、#3 更改为#6),并尝试重新运行它,它仍然会显示其中一个旧字符串——更改似乎没有发生。我尝试了停止服务器、构建项目和显示“发布”的内容的不同组合,但到目前为止,我发现导致更改出现的唯一内容是项目-> 清理并重新启动 Eclipse。我必须清理我的整个项目才能部署更改,这是没有意义的,所以我一定错过了其他一些基本步骤……但是什么?

最佳答案

我现在可以开始工作了。需要注意的几点:

  1. 我通常会设置 Eclipse,以便在我更改源文件时自动构建它(Window->Preferences->General->Workspace)。不知何故,那个设置被关闭了。这可能是在设置所有内容的复杂过程中发生的事情(这涉及在 Eclipse 中安装新软件以及在 Eclipse 之外进行一些安装)。或者它可能是我做错的其他事情。不管怎样,这就是我的更改没有出现的原因之一——我假设它是自动重建的。

  2. 教程说使用“在服务器上运行”来部署新的网络应用程序。我猜这是第一次有必要。但是在更改之后,“在服务器上运行”根本没有帮助;相反,我必须按下服务器选项卡上的“播放”按钮——这就是所有必要的。

服务器设置(特别是发布和模块自动重新加载)似乎没有什么不同。

关于java - 如何让 Eclipse 识别动态 Web 服务代码中的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28601083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com