Java 为什么在创建webservice时找不到URI为的HTTP请求的映射?
我正试图在春季创建json Web服务Java 为什么在创建webservice时找不到URI为的HTTP请求的映射?,java,spring,web-services,spring-mvc,spring-security,Java,Spring,Web Services,Spring Mvc,Spring Security,我正试图在春季创建json Web服务 添加以下库 Spring库 asm-3.3.1.jar jersey-bundle-1.14.jar spring-aop-4.1.3.RELEASE-javadoc.jar spring-aop-4.1.3.RELEASE-sources.jar spring-aop-4.1.3.RELEASE.jar spring-aspects-4.1.3.RELEASE-javadoc.jar spring-aspects-4.1.3.RELEASE-sour
- 添加以下库
asm-3.3.1.jar
jersey-bundle-1.14.jar
spring-aop-4.1.3.RELEASE-javadoc.jar
spring-aop-4.1.3.RELEASE-sources.jar
spring-aop-4.1.3.RELEASE.jar
spring-aspects-4.1.3.RELEASE-javadoc.jar
spring-aspects-4.1.3.RELEASE-sources.jar
spring-aspects-4.1.3.RELEASE.jar
spring-beans-4.1.3.RELEASE-javadoc.jar
spring-beans-4.1.3.RELEASE-sources.jar
spring-beans-4.1.3.RELEASE.jar
spring-context-4.1.3.RELEASE-javadoc.jar
spring-context-4.1.3.RELEASE-sources.jar
spring-context-4.1.3.RELEASE.jar
spring-context-support-4.1.3.RELEASE-javadoc.jar
spring-context-support-4.1.3.RELEASE-sources.jar
spring-context-support-4.1.3.RELEASE.jar
spring-core-4.1.3.RELEASE-javadoc.jar
spring-core-4.1.3.RELEASE-sources.jar
spring-core-4.1.3.RELEASE.jar
spring-expression-4.1.3.RELEASE-javadoc.jar
spring-expression-4.1.3.RELEASE-sources.jar
spring-expression-4.1.3.RELEASE.jar
spring-instrument-4.1.3.RELEASE-javadoc.jar
spring-instrument-4.1.3.RELEASE-sources.jar
spring-instrument-4.1.3.RELEASE.jar
spring-instrument-tomcat-4.1.3.RELEASE-javadoc.jar
spring-instrument-tomcat-4.1.3.RELEASE-sources.jar
spring-instrument-tomcat-4.1.3.RELEASE.jar
spring-jdbc-4.1.3.RELEASE-javadoc.jar
spring-jdbc-4.1.3.RELEASE-sources.jar
spring-jdbc-4.1.3.RELEASE.jar
spring-jms-4.1.3.RELEASE-javadoc.jar
spring-jms-4.1.3.RELEASE-sources.jar
spring-jms-4.1.3.RELEASE.jar
spring-messaging-4.1.3.RELEASE-javadoc.jar
spring-messaging-4.1.3.RELEASE-sources.jar
spring-messaging-4.1.3.RELEASE.jar
spring-orm-4.1.3.RELEASE-javadoc.jar
spring-orm-4.1.3.RELEASE-sources.jar
spring-orm-4.1.3.RELEASE.jar
spring-oxm-4.1.3.RELEASE-javadoc.jar
spring-oxm-4.1.3.RELEASE-sources.jar
spring-oxm-4.1.3.RELEASE.jar
spring-test-4.1.3.RELEASE-javadoc.jar
spring-test-4.1.3.RELEASE-sources.jar
spring-test-4.1.3.RELEASE.jar
spring-tx-4.1.3.RELEASE-javadoc.jar
spring-tx-4.1.3.RELEASE-sources.jar
spring-tx-4.1.3.RELEASE.jar
spring-web-4.1.3.RELEASE-javadoc.jar
spring-web-4.1.3.RELEASE-sources.jar
spring-web-4.1.3.RELEASE.jar
spring-webmvc-4.1.3.RELEASE-javadoc.jar
spring-webmvc-4.1.3.RELEASE-sources.jar
spring-webmvc-4.1.3.RELEASE.jar
spring-webmvc-portlet-4.1.3.RELEASE-javadoc.jar
spring-webmvc-portlet-4.1.3.RELEASE-sources.jar
spring-webmvc-portlet-4.1.3.RELEASE.jar
spring-websocket-4.1.3.RELEASE-javadoc.jar
spring-websocket-4.1.3.RELEASE-sources.jar
spring-websocket-4.1.3.RELEASE.jar
创建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_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Testspting</display-name>
<display-name>Spring MVC Application</display-name>
<servlet>
<servlet-name>HelloWeb</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HelloWeb</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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-3.0.xsd">
<context:component-scan base-package="com.tutorialspoint" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
测试监视
SpringMVC应用程序
你好
org.springframework.web.servlet.DispatcherServlet
1.
你好
/
创建HelloWebservlet.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_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Testspting</display-name>
<display-name>Spring MVC Application</display-name>
<servlet>
<servlet-name>HelloWeb</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HelloWeb</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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-3.0.xsd">
<context:component-scan base-package="com.tutorialspoint" />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
controller.js
@Controller
public class HelloController{
@RequestMapping(value = "/hel", method = RequestMethod.GET ,consumes = "application/json" )
public HashMap printHello(ModelMap model) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("message", "Hello Spring MVC !");
return map;
}
@GET
@Path("/json/employees/")
@Produces("application/json")
public HashMap listEmployeesJSON(){
HashMap<String, String> map = new HashMap<String, String>();
map.put("message", "Hello Spring MVC !");
return map;
}
}
@控制器
公共类Hello控制器{
@RequestMapping(value=“/hel”,method=RequestMethod.GET,consumes=“application/json”)
公共HashMap printHello(ModelMap模型){
HashMap=newHashMap();
map.put(“message”,“Hello Spring MVC!”);
返回图;
}
@得到
@路径(“/json/employees/”)
@生成(“应用程序/json”)
公共HashMap listEmployeesJSON(){
HashMap=newHashMap();
map.put(“message”,“Hello Spring MVC!”);
返回图;
}
}
当我像那样运行我的项目时
它给出了“Hello Spring MVC!”,很好
但是当你这样跑的时候
服务器日志显示在名为“HelloWeb”的DispatcherServlet中找不到URI为[/Testspting/json/employees]的HTTP请求的映射
当我运行
{“message”,“Hello Spring MVC!”}您可以将注释与@RequestMapping
注释一起使用
看看这个例子。
比如说
@RequestMapping(value = "/json/employees/{pathVariableIfAny}", method = { RequestMethod.GET })
public @ResponseBody
HashMap listEmployeesJSON(@PathVariable("pathVariableIfAny") int pathVariable) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("message", "Hello Spring MVC !");
return map;
}
@RequestMapping(value=“/json/employees/{pathVariableIfAny}”,method={RequestMethod.GET})
公共@ResponseBody
HashMap listEmployeesJSON(@PathVariable(“pathVariableIfAny”)int-PathVariable){
HashMap=newHashMap();
map.put(“message”,“Hello Spring MVC!”);
返回图;
}
@控制器
@请求映射(value=“/Testspting”)
公共类Hello控制器{
@得到
@路径(“/json/employees/”)
@生成(“应用程序/json”)
公共HashMap listEmployeesJSON(){
HashMap=newHashMap();
map.put(“message”,“Hello Spring MVC!”);
返回图;
}
}
尝试在@controller之后添加@RequestMapping注释。是否应该尝试
http://localhost:8080/Testspting/json/employees/
?@AKS我试过了,但在名为“HelloWeb”的DispatcherServlet中找不到URI为[/Testspting/json/employees/]的HTTP请求的映射。您可以更改@Path(“/json/employees/”)吗
到@Path(“/json/employees”)
并重试。在这种情况下,请查看此处。您正在使用两种不同类型的注释—一种使用@RequestMapping
,另一种使用@Path
。给定链接的答案解释得非常详细。@NamanGala不起作用。.有没有其他方法可以使JSON生效?但是正如前面提到的,其中一个链接http://localhost:8080/Testspting/hel
正在工作。所以,这不可能是原因。我认为这会给/hel
url带来问题,因为它还包括@RequestMapping
。看一看这个例子,我认为您正在结合SpringREST和Jersey JAX-RS。请看这个@user944513,您的问题解决了吗?