- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
厌倦了使用 XML 文件进行 Spring 配置,尝试转向完整的 Java 方法,但我无疑失败了。
只涉及 2 个类:
@Configuration
public class AppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
WebApplicationContext context = getContext();
servletContext.addListener(new ContextLoaderListener(context));
DispatcherServlet dispatcherServlet = new DispatcherServlet(context);
dispatcherServlet.setDetectAllHandlerAdapters(true);
ServletRegistration.Dynamic dispatcher = servletContext.addServlet("DispatcherServlet", dispatcherServlet);
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
}
private AnnotationConfigWebApplicationContext getContext() {
AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
context.setConfigLocation("cl.waypoint.ecobox");
return context;
}
@Bean
public RequestMappingHandlerAdapter annotationMethodHandlerAdapter() {
final RequestMappingHandlerAdapter annotationMethodHandlerAdapter = new RequestMappingHandlerAdapter();
List<HttpMessageConverter<?>> httpMessageConverters = new ArrayList<>();
httpMessageConverters.add(new MappingJackson2HttpMessageConverter());
annotationMethodHandlerAdapter.setMessageConverters(httpMessageConverters);
return annotationMethodHandlerAdapter;
}
}
和 Controller :
@Controller
public class Loader {
private static final Logger LOGGER = Logger.getLogger("Loader");
@RequestMapping("/routeLoader")
public LoaderResult load(@RequestBody byte[] data) {
LOGGER.info("new Route!");
return new LoaderResult();
}
}
当使用 cUrl 将一些 JSON 数据发布到端点时,还有一个“漂亮的”红波 (Stacktrace):
javax.servlet.ServletException: No adapter for handler [cl.waypoint.ecobox.Loader@2c4d0325]: The DispatcherServlet configuration needs to include a HandlerAdapter that supports this handler
at org.springframework.web.servlet.DispatcherServlet.getHandlerAdapter(DispatcherServlet.java:1173)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:617)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1527)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1484)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:722)
Tomcat的启动日志:
Información: Initializing Spring root WebApplicationContext
nov 02, 2016 12:40:57 PM org.springframework.web.context.ContextLoader initWebApplicationContext
Información: Root WebApplicationContext: initialization started
nov 02, 2016 12:40:57 PM org.springframework.web.context.support.AnnotationConfigWebApplicationContext prepareRefresh
Información: Refreshing Root WebApplicationContext: startup date [Wed Nov 02 12:40:57 ART 2016]; root of context hierarchy
nov 02, 2016 12:40:57 PM org.springframework.web.context.support.AnnotationConfigWebApplicationContext loadBeanDefinitions
Información: Found 2 annotated classes in package [cl.waypoint.ecobox]
nov 02, 2016 12:40:58 PM org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache
Información: Looking for @ControllerAdvice: Root WebApplicationContext: startup date [Wed Nov 02 12:40:57 ART 2016]; root of context hierarchy
nov 02, 2016 12:40:59 PM org.springframework.web.context.ContextLoader initWebApplicationContext
Información: Root WebApplicationContext: initialization completed in 1469 ms
nov 02, 2016 12:40:59 PM org.apache.catalina.core.ApplicationContext log
Información: Initializing Spring FrameworkServlet 'DispatcherServlet'
nov 02, 2016 12:40:59 PM org.springframework.web.servlet.DispatcherServlet initServletBean
Información: FrameworkServlet 'DispatcherServlet': initialization started
nov 02, 2016 12:40:59 PM org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping registerHandler
Información: Mapped URL path [/routeLoader] onto handler 'loader'
nov 02, 2016 12:40:59 PM org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping registerHandler
Información: Mapped URL path [/routeLoader.*] onto handler 'loader'
nov 02, 2016 12:40:59 PM org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping registerHandler
Información: Mapped URL path [/routeLoader/] onto handler 'loader'
nov 02, 2016 12:40:59 PM org.springframework.web.servlet.DispatcherServlet initServletBean
Información: FrameworkServlet 'DispatcherServlet': initialization completed in 152 ms
相关的 Maven 依赖项:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.3.RELEASE</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.4</version>
</dependency>
</dependencies>
测试调用者:
curl --request POST -H "Content-Type: application/json" -d '{ "NroViaje": 1, "CodDestino": "678", "DescDestino": "VILLA ALEMANA", "PatenteCamion": "AA1111", "PatenteTrailer": "BB2222", "FechaEntrega": "2016-10-31"}' http://localhost:8080/ecobox-load-route/routeLoader
可能缺少什么?
PS:在 Stackoverflow 社区中发现了至少 4 个相似的问题,但不幸的是,它们都没有帮助 :(
最佳答案
尝试,
@RequestMapping("/routeLoader")
public @ResponseBody LoaderResult load(@RequestBody byte[] data) {..}
(因为您要返回 LoaderResult 对象,您可能必须将其标记为响应主体)
关于java - 没有处理程序的适配器 ... DispatcherServlet 配置需要包含支持此处理程序的 HandlerAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40383544/
我正在将 Spring Boot 应用程序从版本 1.5.6 升级到 2.1.1。当我启动应用程序时,它卡在这一行: INFO: Initializing Spring DispatcherServl
基本上我想将我的应用程序分成两部分。每个部分都有自己的安全内容和自己的 @Controller。 @Services 应该可以从两个部分访问。 所以我想,我应该得到 2 个 DispatcherSer
我正在 Eclipse 中使用 Spring boot、Java 8 制作 RESTful 服务。每当我尝试从 Postman(或任何其他地方)发送 HTTP 请求时,我都会收到 404 未找到代码。
我认为配置文件中缺少某些内容,但我看不到。 当我在浏览器中输入 --> localhost:8080/Procura/notifications --> 我在控制台中输入这个 -->org.sprin
我看到类似的问题并尝试将 URL 从/* 映射到/但它不起作用。我也尝试过直接从浏览器访问该 URL,但也不起作用。我是 Spring 新手,有人可以帮助我吗? Archetype C
大家好,因为这是我的 Controller 类,当我在 postman 中运行此应用程序时,它的显示状态为 200 ok。但是文件未读取,我如何将带有扩展名的文件名作为方法中的字符串参数传递?我缺少您
这在 stackOverflow 中是一个很常见的问题,但没有一个相同问题的主题能解决我的问题。 我们有一个使用 xml 配置的模板配置,但现在我们正试图摆脱它并开始使用 Java 配置。 所以我有一
这个问题在这里已经有了答案: Why does Spring MVC respond with a 404 and report "No mapping found for HTTP request
这个问题在这里已经有了答案: Why does Spring MVC respond with a 404 and report "No mapping found for HTTP request
我一直在使用 Spring MVC 4/hibernate 4 和 Web flow 2.4 以及 Java 配置来构建应用程序。我使用 JUnits 构建和测试了服务和 daos,但在向应用程序添加
配置 Tomcat 7.0.47 上的 Servlet 3.0 Spring 3.1 问题 我有一个比较特殊的情况,我需要两个 DispatcherServlets : 一个处理资源请求,一个处理正常
Spring MVC 使用 DispatcherServlet 将控制路由到适当的 Controller 。但是过滤器在哪里适合流程?如果我指定一个过滤器来执行 session 管理或身份验证,过滤器
这是我用于 spring mvc 的当前配置: 1- web.xml: spring org.springframework.web.servlet.DispatcherServ
我正在使用 Spring 框架来编写 Web 服务应用程序。应用程序中没有 html 或 jsp 页面。它是纯粹的网络服务。 这是我的 Controller 类 @RequestMapping("/*
我收到消息“请求的资源 () 不可用。”当转到我使用 DispatcherServlet 映射的 url 时。以前,当我将映射设置为使用 .do 扩展名时,它可以工作,但是当我在没有扩展名的情况下进行
在请求适当的 View 时,我不断收到 404 not found HTTP 响应。 这些是我的配置文件。 web.xml ssytem-ecommerce-pro
我有一个带有 javascript UI 的 Spring MVC (v4.1.3) Web 应用程序。我已经实现了一个自定义 DispatcherServlet 并在 web.xml 中配置了相同的
我在我的 Controller 中使用了 request.getRequestDispatcher(url).forward(request, response) 方法!!我有麻烦了。 (我知道调度程
几天来我一直在与这条消息作斗争,无法弄清楚我错在哪里。 基本上我想做的是在我的服务中提供 json。我对返回 jsp 不感兴趣。 我请求的网址是 localhost/service/products/
Spring + Angular 文件上传。尝试上传另一个文件时出现 HTTP - 417 错误时只能上传文件。 在第一次上传后启动服务器后,在 tomcat 上我收到以下消息 - Framewo
我是一名优秀的程序员,十分优秀!