Spring Boot + Jersey发生FileNotFoundException (No such file or directory)
我在使用Spring Boot + Jersey 项目,解决了上一篇随笔中的FileNotFoundException,然后又报了一个FileNotFoundException,不过报错信息不一样了
报错信息如下:
- ERROR o.a.c.c.C.[Tomcat].[localhost].[/] - StandardWrapper.Throwable
- org.glassfish.hk2.api.MultiException: A MultiException has 1 exceptions. They are:
- 1. org.glassfish.jersey.server.internal.scanning.ResourceFinderException: java.io.FileNotFoundException: /home/vincent/myComponent/spring-boot/yishi-service/target/yishi-service-0.5.0.war!/WEB-INF/classes (No such file or directory)
- at org.jvnet.hk2.internal.Utilities.justCreate(Utilities.java:1007)
- at org.jvnet.hk2.internal.ServiceLocatorImpl.create(ServiceLocatorImpl.java:962)
- at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:1054)
- at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:1046)
- at org.glassfish.jersey.server.ApplicationHandler.createApplication(ApplicationHandler.java:385)
- at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:342)
- at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:392)
- at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:177)
- at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:369)
- at javax.servlet.GenericServlet.init(GenericServlet.java:158)
- at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1183)
- at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
- at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4913)
- at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedContext.deferredLoadOnStartup(TomcatEmbeddedContext.java:78)
- at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.startConnector(TomcatEmbeddedServletContainer.java:256)
- at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:181)
- at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:297)
- at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:145)
- at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:545)
- at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
- at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761)
- at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371)
- at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
- at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186)
- at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175)
- at com.jiajian.yishi.YishiServiceProjectApplication.main(YishiServiceProjectApplication.java:17)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:498)
- at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
- at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
- at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
- at org.springframework.boot.loader.WarLauncher.main(WarLauncher.java:59)
此种问题由于jersey无法通过不解压扫描war包中的包造成的,因为我的ResourceConfig如下:
- public class WebApplication extends ResourceConfig {
- public WebApplication() {
- System.out.println("WebApplication init...");
//此处造成- packages("com.jiajian.yishi.rest");
- property(ServerProperties.TRACING, "ALL");
- // Freemarker
- property(MvcFeature.TEMPLATE_BASE_PATH, "/WEB-INF/fm/");
- register(MvcFeature.class);
- register(FreemarkerMvcFeature.class);
- // PageViewBehavior
- register(PageViewContainerRequestFilter.class);
- register(PageViewContainerResponseFilter.class);
- }
- }
目前没有很好的解决方案,
如需使用Jersey可以,通过register(Resource.class) 实现
或者将所以Resource类组成一个单独模块,并通过在启动时unpacked。
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- <configuration>
- <requiresUnpack>
- <dependency>
- <groupId>你的Resource的groupId</groupId>
- <artifactId>你的Resource的artifactId</artifactId>
- </dependency>
- </requiresUnpack>
- </configuration>
- </plugin>
- </plugins>
- </build>
Spring Boot + Jersey发生FileNotFoundException (No such file or directory)的更多相关文章
- spring boot + jersey工程由jar包转为war包在tomcat中启动报错问题
第一步: 在maven下,将Spring Boot工程由jar转换为war包启动,很简单,将pom.xml文件中的packaging改为war <packaging>war</pac ...
- Spring Boot Jersey使用示例
前言 本文将学习如何使用Spring Boot和Jersey框架,去配置和创建JAX-RS 2.0 REST API接口: 这个示例应用使用的是Jersey的Servlet容器去部署REST API接 ...
- 前端页面调用Spring boot接口发生的跨域问题
最近要重构一个基于spring boot的后端API服务,需要再本地测试.在本地测试时,运行在本地的前端页面发送一个ajax请求访问后端API,然后浏览器报错blocked CORS policy. ...
- Spring Boot + Jersey
Jersey是一个很好的Java REST API库.当你用Jersey实现REST的时候.是很自然的.同一时候Spring Boot是Java世界中还有一个很好的工具.它降低了程序的应用配置(< ...
- spring boot 1.4.1 with jsp file sample
<!--pom.xml--> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" ...
- [Spring boot] Read values from external properties file
Let's say we have a extral app.proporites file which contains some extra configuration: // resources ...
- Spring Boot通过命令行启动发生FileNotFoundException
Spring Boot + Jersey 通过命令行启动会发生错误FileNotFoundException异常 异常信息如下: ERROR o.a.c.c.C.[Tomcat].[localhost ...
- Spring Boot Reference Guide
Spring Boot Reference Guide Authors Phillip Webb, Dave Syer, Josh Long, Stéphane Nicoll, Rob Winch, ...
- spring boot基础学习教程
Spring boot 标签(空格分隔): springboot HelloWorld 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新 ...
随机推荐
- Eclipse 主题
Eclipse开发环境默认都是白底黑字的,看到同事的Xcode中设置的黑灰色背景挺好看的,就去网络上查了一下.发现Eclipse也可以设置主题. http://eclipsecolorthemes.o ...
- Java中引用传递
//Java中的引用传递 class Ref1{ int temp = 10 ; String Str = "hello"; } public class HelloWorld { ...
- Android官方命令深入分析之绘制9-patch
9-patch是一个所见即所得的编辑器,允许你创建可以自动更改大小适应屏幕的bitmap图像.被选中的部分可以水平或垂直的进行缩放. 下面是使用9-patch工具创建一个9-patch图像的实例,首先 ...
- UNIX环境高级编程——死锁
操作系统中有若干进程并发执行,它们不断申请.使用.释放系统资源,虽然系统的进程协调.通信机制会对它们进行控制,但也可能出现若干进程都相互等待对方释放资源才能继续运行,否则就阻塞的情况.此时,若不借助外 ...
- Learn Lua in 15 Minutes
原文地址:http://tylerneylon.com/a/learn-lua/ Learn Lua in 15 Minutes more or less For a more in-depth Lu ...
- 【一天一道LeetCode】#87. Scramble String
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...
- android异步任务asyntask详解
在Android中实现异步任务机制有两种方式,Handler和AsyncTask. Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更 ...
- java常用集合类详解(有例子,集合类糊涂的来看!)
Framework集合框架是一个统一的架构,用来表示和操作集合.集合框架主要是由接口,抽象类和实现类构成.接口:蓝色:实现类:红色Collection|_____Set(HashSet)| ...
- [java]Windows 7 配置jdk 1.7环境变量
来自百度文库 Windows 7 配置jdk 1.7环境变量 环境:win7(32位)64位和下面差不多 jdk1.7 1.右击计算机-属性-高级系统设置-高级-环境变量,弹出&quo ...
- MySQL学习笔记_7_MySQL常用内置函数
MySQL常用内置函数 说明: 1)可以用在SELECT/UPDATE/DELETE中,及where,orderby,having中 2)在函数里将字段名作为参数,变量的值就是字段所对应的每一行的值. ...