【发布时间】:2016-07-21 10:30:52
【问题描述】:
谁能告诉我我所做的是否正确?
我有这个 web.xml 文件,其中声明了我的 servlet,我想创建另一个访问 [reach] 相同 web 服务的 servlet
它不起作用,我不知道我错过了什么,你能帮忙吗? 这是我的 servlet 和代码:
<!-- old servlet-->
<servlet>
<servlet-name>api</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-config/api-r-servlet.xml</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>api</servlet-name>
<url-pattern>/sitesApi/*</url-pattern>
</servlet-mapping>
<!-- my secod servmet V2 -->
<servlet>
<servlet-name>webservice</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-config/api-web-servlet.xml</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>webservice</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
所以对于我的其他 XML 文件,api-web-servlet 完全一样:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
>
<context:annotation-config/>
<context:component-scan base-package="com.me.project.rest.api" />
<mvc:annotation-driven />
</beans>
对于我的 URL 测试,我使用: http://localhost:8080/sitesApi/v1/mysite?id=1&fields=site.name 它可以工作,但是当我尝试使用其他 servlet 时,它不会: http://localhost:8080/api/v1/mysite?id=1&fields=site.name
*******版*****
@RequestMapping(value = "/v1/mySite", method = RequestMethod.GET)
public @ResponseBody
Object SitesV1( @RequestParam(value = "ajouterstatus", required = false) Integer ajouterstatus,
@RequestParam(value = "monadresse", required = false) String monadresseHttpServletRequest request, HttpServletResponse responseHttp{
try {
appname = request.getHeaders( "Name" ).nextElement().toString();
} catch ( Exception e ) {
return new Result( "", ": AppName is Empty" );
}
所以与其他方法完全相同
@RequestMapping(value = "/v2/mySite", method = RequestMethod.GET)
public @ResponseBody
Object SitesV2( @RequestParam(value = "ajouterstatus", required = false) Integer ajouterstatus,
@RequestParam(value = "monadresse", required = false) String monadresseHttpServletRequest request, HttpServletResponse responseHttp{
try {
appname = request.getHeaders( "Name" ).nextElement().toString();
} catch ( Exception e ) {
return new Result( "", ": AppName is Empty" );
}
有什么想法吗?? 谢谢你
【问题讨论】:
-
您在启动服务器或访问URL时日志中是否有错误?
-
@CédricCouralet 谢谢你的评论,不,我没有任何错误,我在调试模式下运行应用程序,我看到第一个链接我可以用第二个链接恢复我的参数[它访问] 方法但参数为空,这就是它返回 no name found 的原因
-
我认为您必须提供用于检索参数的代码。
-
好的,我会编辑我的问题,但我认为问题出在 servlet 或 xml 文件上,请留下来,稍后将发布代码谢谢
标签: java spring web-services jsp servlets