这是我在stackoverflow中的第一个问题!WOW:)
在这个问题上,我简直不知所措:(我有一个简单的helloworld Web服务,构建WAR文件并将其部署在本地主机上的tomcat(8.0.35)上。明确地说:我刚刚写了一个类,用@WebService注释;然后我写了网络。xml和sun jaxws。xml;我什么都没做!这足以让该类成为Web服务吗?我是否错过了另一步?
问题:网址:localhost:8080/endpointname/url-pattern没有显示我的网络服务的定义,因为它在我跟随编写服务的链接中意味着:http://www.mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/.我只得到一个胖的404 Eror。这是我的构建文件:
<?xml version="1.0" encoding="UTF-8"?>
<project name="test_WS" default="deploy" basedir=".">
<property name="project-name" value="${ant.project.name}" />
<property name="war-file-name" value="${project-name}.war" />
<property name="source-directory" value="src" />
<property name="web-directory" value="WebContent" />
<property name="webinf.dir" value="${web-directory}/WEB-INF" />
<property name="web-xml-file" value="${webinf.dir}/web.xml" />
<property name="build-directory" value="build" />
<property name="shared.deploy.dir" value="C:/1_Entwicklung/datarocket/tomcat-webapps" />
<property name="local.deploy.dir" value="C:/1_Entwicklung/apache-tomcat-8.0.35/webapps" />
<tstamp prefix="build-info">
<format property="current-date" pattern="dd-MM-yyyy" locale="de" />
<format property="current-time" pattern="hh:mm:ss a z" locale="de" />
</tstamp>
<!-- Classpath -->
<path id="build.classpath">
<!-- Jax WS related -->
<fileset dir="${webinf.dir}/lib/" casesensitive="yes">
<include name="*.jar"/>
</fileset>
</path>
<target name="init">
<mkdir dir="${webinf.dir}/classes" />
<mkdir dir="${build-directory}/classes" />
</target>
<!-- deploy -->
<target name="deploy" depends="war">
<copy file="${build-directory}/${war-file-name}" todir="${local.deploy.dir}" />
<copy file="${build-directory}/${war-file-name}" todir="${shared.deploy.dir}" />
</target>
<!-- war -->
<target name="war" depends="build">
<war warfile="${build-directory}/${war-file-name}" webxml="${web-xml-file}">
<classes dir="${build-directory}/classes" />
<fileset dir="${web-directory}">
<!-- exclude webxml as it is attribute of the war tag -->
<exclude name="WEB-INF/web.xml" />
</fileset>
<manifest>
<attribute name="Built-On" value="${build-info.current-date}" />
<attribute name="Built-At" value="${build-info.current-time}" />
</manifest>
</war>
</target>
<target name="build" depends="clean">
<javac includeantruntime="false" srcdir="${source-directory}" destdir="${build-directory}/classes">
</javac>
</target>
<!-- clean -->
<target name="clean" description="Prepare for clean build">
<delete dir="${webinf.dir}/classes" />
<delete dir="${build-directory}" />
<mkdir dir="${build-directory}" />
<mkdir dir="${build-directory}/classes" />
</target>
</project>
这是我的太阳。xml:
<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0">
<endpoint
name="HalloAPI"
implementation="saab.javabeans.Hallo"
url-pattern="/sayhello" >
</endpoint>
</endpoints>
这是API:
@WebService
public interface HalloAPI {
String sayHello(String name);
}
为什么tomcat说:“HTTP状态404- /HalloAPI/sayhello”?发布方面有什么问题或遗漏吗?我的意思是,如果我使用glassfish服务器,它会部署并向我显示测试器和wsdl。但是在tomcat上部署...我得到404。
这是我的网站。xml:
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name>test_WS</display-name>
<listener>
<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>
<servlet>
<servlet-name>webservicesServlet</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.Servlet.WSServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>webservicesServlet</servlet-name>
<url-pattern>/sayhello</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>20</session-timeout>
</session-config>
</web-app>
Happy I:我将所需的jaxws JAR移到了web inf/lib中。现在Tomcat不会在部署时抛出错误。但该服务仍然不可用。据我所知:tomcat/lib中的jaxws JAR混淆了类加载器。所以我把他们塞进了战争。下面是部署协议:
07-Jun-2016 15:34:54.149 INFO [localhost-startStop-2] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive C:\1_Entwicklung\apache-tomcat-8.0.35\webapps\test_WS.war
07-Jun-2016 15:34:55.371 INFO [localhost-startStop-2] com.sun.xml.ws.transport.http.servlet.WSServletDelegate.<init> WSSERVLET14: Initialisierung von JAX-WS-Servlet
07-Jun-2016 15:34:55.372 INFO [localhost-startStop-2] com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized WSSERVLET12: Initialisierung von JAX-WS-Kontext-Listener
07-Jun-2016 15:34:55.373 INFO [localhost-startStop-2] com.sun.xml.ws.transport.http.servlet.WSServletContextListener.contextInitialized WSSERVLET12: Initialisierung von JAX-WS-Kontext-Listener
07-Jun-2016 15:34:55.385 INFO [localhost-startStop-2] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive C:\1_Entwicklung\apache-tomcat-8.0.35\webapps\test_WS.war has finished in 1,236 ms
问题依然存在:服务不可用;状态:404提前感谢您的帮助。
更改你的com。太阳xml。ws。运输http。Servlet。WSServlet到com。太阳xml。ws。运输http。servlet。WSServlet在你的网站上。xml
我尝试在独立的Tomcat7.0.91上部署Gradle+Spring Boot2+Angular2应用程序WAR文件。如果我用提供的jar和嵌入的tomcat引导应用程序,一切正常,但是当我在独立容器上部署时,当我转到“/springboot”上下文时,它给我404:“源服务器没有找到目标资源的当前表示,或者不愿意公开存在的表示。”来自tomcat的日志没有显示任何有用的信息。通过在server
我一直试图在tomcat上部署一个简单的Web服务,但我没有成功,它总是返回我404错误。 我使用了这个例子中的代码 http://www.mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/ 但无法使用war,因为我在服务器中设置了上下文信息。xml 因此,我使用了与mkyong相同的代码,但在部署时遵循以下步骤:
这真是令人难以置信的沮丧。 我已经部署了一个webapp在Eclipse/Tomcat中进行调试。我选择了“使用Tomcat安装”单选按钮来使用我自己的服务器。这都很好。但当我尝试访问我的web应用程序时,我得到一个404错误。我可以看到它已经部署在wptwebapps文件夹中。日志只显示404。我可以很好地访问manager应用程序,它显示我的web应用程序已经部署。 我做了清理/重新发布,重新
首先,我研究了建议的类似问题——因为这显然是一个相当普遍的问题——但还没有找到答案。我哪里出错了?下载了最新的JAXWS-RI,手动复制了所有的. jar文件。然后拼凑了一个web.xml 还有sun-jaxws.xml 还有几个java文件 我将这四个文件放在适当的目录结构中,在eclipse中构建了一个war文件,并将其复制到Tomcat webapps文件夹中。战争爆发并显示在管理器控制台上
我在Spring MVC中开发了一个应用程序,当我直接从eclipse通过run as->run On server运行它时,它工作得很好。 但是现在我想要将war部署到Tomcat文件夹并从那里运行它。我已经对此做了更改,war正在正确地部署到所需的tomcat文件夹中,但当我启动tomcat服务器并在浏览器中访问应用程序url时,它会给我404错误。服务器正在启动,没有任何异常。 下面是项目结
问题内容: 我试图弄清楚如何设置Apache Tomcat服务器以为具有深层链接的角度应用程序提供服务。例如: 静态服务器在收到对mysite.com/的请求时,通常会返回index.html。但是它拒绝mysite.com/heroes/42并返回404-Not Found错误,除非将其配置为返回index.html。 我想在localhost / angular上提供angular应用,我尝试