我已根据此示例创建了一个webapp:
http://code4reference.com/2012/09/hello-world-web-application/
我已使用eclipse 4.2将其转换为动态Web项目。结构是:
MyProject
-> src
-> webapp
-> WEB-INF
-> appContext
-> beans.xml
-> mappings.xml
-> web.xml
我在eclipse中设置服务器时指定了tomcat 7的本地安装。当我运行服务器(使用上面的Web应用程序)时,我得到:
14-11-2012 14:12:08 org.apache.catalina.core.AprLifecycleListener init
...
14-11-2012 14:12:09 org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:MyProject' did not find a matching property.
14-11-2012 14:12:09 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
14-11-2012 14:12:09 org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
14-11-2012 14:12:09 org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 563 ms
14-11-2012 14:12:09 org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
14-11-2012 14:12:09 org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.32
14-11-2012 14:12:09 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
14-11-2012 14:12:09 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
14-11-2012 14:12:09 org.apache.catalina.startup.Catalina start
INFO: Server startup in 680 ms
然后没有任何反应。我试图访问此网址:
http://localhost:8080/HelloWorld/hi
但获取HTTP状态404 - / HelloWorld / hi。是否有任何日志可能会指向我出错的方向?
编辑:我也尝试过遵循本指南:http://www.eclipse.org/webtools/community/tutorials/BuildJ2EEWebApp/BuildJ2EEWebApp.html
但给出相同的结果 - 没有任何反应。我试图把断点放在一行:
String userAgent = req.getHeader("user-agent");
在:
public class SnoopServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String userAgent = req.getHeader("user-agent");
但它永远不会到达那条线。如果我在eclipse中右键单击项目(MyWebApp)并选择“Run as - >在服务器上运行”,则在eclipse中打开一个浏览器:
项目已添加到服务器:
并在eclipse中运行:
这是com.sample.SnoopServlet的内容:
package com.sample;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SnoopServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String userAgent = req.getHeader("user-agent");
String clientBrowser = "Not known!";
if( userAgent != null)
clientBrowser = userAgent;
req.setAttribute("client.browser",clientBrowser );
req.getRequestDispatcher("/showBrowser.jsp").forward(req,resp);
}
}
这是web.xml的内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<servlet>
<servlet-name>Snoop Servlet</servlet-name>
<servlet-class>com.sample.SnoopServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Snoop Servlet</servlet-name>
<url-pattern>/snoop/*</url-pattern>
</servlet-mapping>
<!-- Don't remove the below section -->
<welcome-file-list>
<welcome-file></welcome-file>
</welcome-file-list>
</web-app>
答案 0 :(得分:1)
下载Tomcat Source,并构建它 一个。按照BUILDING.txt中的说明操作。如果您已经拥有JDK和Ant,那么它很快捷 湾将/ output / build目录移动到某处并重命名,例如。 /home/me/apache-tomcat-7.0.29
在Eclipse中,Window-&gt; Show View-&gt; Servers
右键单击Servers-&gt; New-&gt; Server
Apache-&gt; Tomcat v7.0服务器
一个。服务器的主机名:localhost
湾服务器名称:无论你喜欢什么(Tomcat 7)
C。服务器运行时环境:Apache Tomcat v7.0
d。完成
可选)双击新服务器
一个。编辑您想要的端口
现在在Eclipse中,右键单击 - >新建&gt;动态Web项目
一个。为您的项目命名:没有空间或它不起作用(My_Tomcat_Project)
湾目标运行时:Apache Tomcat v7.0
C。 Web模块:Web模块3.0
d。配置:Apache Tomcat v7.0的默认配置
即完成
F。编写您的webapp
保存项目。
将其部署到Tomcat服务器(从Project Explorer拖放到Servers视图)
启动服务器
你做完了!
a)导航至localhost:{port}/{Project_Name}/{url_pattern}
以查看描述新网络服务的网页
b)例如。 http://localhost:8080/My_Tomcat_Project/hello
c)从这里您可以访问生成的WSDL文件。
答案 1 :(得分:0)
我最近遇到过类似的问题,有一件事可以帮助我理解应用程序文件在哪里部署到哪里。我把我的发现here放在一起。
在我的特定情况下,我发现我只部署了已编译的类文件,但没有部署我的WEB-INF / *文件,因此没有web.xml文件来启动应用程序。验证完所有tomcat服务器配置和部署程序集配置是否正确后,我发生了这样的事情:右键单击服务器 - &gt; “清洁”。这将完成清理部署目录并重新发布。
我的工作区在某种程度上停留在“发布”不发布所有内容并需要清理它的状态。请注意,“清理”项目不会清除部署目录,也不会让我摆脱糟糕的状态。另请注意,“清除Tomcat工作目录”会清除./work目录,也不会清除应用程序目录。