Java 为什么在创建webservice时找不到URI为的HTTP请求的映射?

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

我正试图在春季创建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-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,您的问题解决了吗?