无法在 Eclipse 的 Create Servlet 对话框中选择项目

Posted

技术标签:

【中文标题】无法在 Eclipse 的 Create Servlet 对话框中选择项目【英文标题】:Cannot select the project in the Create Servlet dialog in Eclipse 【发布时间】:2020-02-10 10:24:23 【问题描述】:

我遇到了类似于this one 的问题,但提供的解决方案并没有解决我的问题。所以问题是我无法在 EclipseCreate Servlet 对话框中选择项目。 这使我无法完成创建新 servlet 的过程。

按照解决方案的建议,我创建了一个 Dynamic Web Project 并确保在 foo -> Properties -> Project 中检查了 Dynamic Web Module。我也在 Java EE 视角

项目结构:-

创建 servlet 向导:-

项目属性:-

我在 Mac OS Mojave 版本 10.14.5 上运行以下 Eclipse 实例:-

面向企业 Java 开发人员的 Eclipse IDE。

版本:2018-12 (4.10.0) 版本号:20181214-0600

任何帮助将不胜感激。 干杯!

在下面编辑(.project 文件):-

   <?xml version="1.0" encoding="UTF-8"?>
      <projectDescription>
      <name>Foo</name>
      <comment></comment>
      <projects>
      </projects>
      <buildSpec>
         <buildCommand>
             <name>org.eclipse.jdt.core.javabuilder</name>
             <arguments>
             </arguments>
         </buildCommand>
         <buildCommand>
         
     <name>org.eclipse.wst.common.project.facet.core.builder</name>
        <arguments>
        </arguments>
    </buildCommand>
    <buildCommand>
        <name>org.eclipse.wst.validation.validationbuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
</buildSpec>
<natures>
    <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
     
 
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
     
 <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
     <nature>org.eclipse.jdt.core.javanature</nature>
 </natures>
</projectDescription>

【问题讨论】:

项目选择器是否显示任何可选项目? 你能附上.project文件吗? @LittleSanti 不,它甚至是交互式的。如果我点击下拉菜单,什么都不会发生。 @nitind 我已经用 .project 文件更新了问题。 如果它能让你感觉好些,我在六七年前就放弃了 Eclipse 转而使用 IntelliJ IDEA,并且没有回头(除了昨天) 【参考方案1】:

这使我无法完成创建新 servlet 的过程。

在软件可重用之前,它首先必须是可用的。 我理解您对 Eclipse 的不满。 请尝试以下步骤:

    使用 -clean 参数重新启动 Eclipse。 如果仍然无法正常工作,请备份并删除 Eclipse 工作区的 .metadata 目录。 .metadata 通常是工作区目录中的隐藏目录。重复 #1。 禁用/删除不属于 Eclipse 默认包的所有第三方插件并重复 #1。

顺便说一句。创建Servlet 总是有老派的方法。您可以简单地创建一个新的Class 并使其扩展HttpServlet,并将其映射到web.xml

Servlet Java 类示例

// Import other required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// Extend HttpServlet class
public class HelloWorldServlet extends HttpServlet 

   private String message;

   public void init() throws ServletException 
      // Do required initialization
      message = "Hello World";
   

   public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException 

      // Set response content type
      response.setContentType("text/html");

      // Actual logic goes here.
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
   

   public void destroy() 
      // do nothing.
   

web.xml 映射

...
<servlet>
   <servlet-name>comingsoon</servlet-name>
   <servlet-class>mysite.server.ComingSoonServlet</servlet-class>
</servlet>
<servlet-mapping>
   <servlet-name>comingsoon</servlet-name>
   <url-pattern>/*</url-pattern>
</servlet-mapping>
...

【讨论】:

以上是关于无法在 Eclipse 的 Create Servlet 对话框中选择项目的主要内容,如果未能解决你的问题,请参考以下文章

eclipse启动时弹出Failed to create the Java Virtual Machine

eclipse oxygen 版本(即为4.7版本)打开 could not create the java virtual machine问题

Eclipse配置Tomcat:Cannot create a server using the selected type

Eclipse 无法识别使用 Maven 创建的 Java Web 项目

hadoop上传文件失败报错(put: Cannot create file/eclipse.desktop._COPYING_. Name node is in safe mode.)

eclipse打开出现Failed to create the java virtual machine