我在使用Spring Boot + Jersey 项目,解决了上一篇随笔中的FileNotFoundException,然后又报了一个FileNotFoundException,不过报错信息不一样了

报错信息如下:

  1. ERROR o.a.c.c.C.[Tomcat].[localhost].[/] - StandardWrapper.Throwable
  2. org.glassfish.hk2.api.MultiException: A MultiException has 1 exceptions. They are:
  3. 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)
  4.  
  5. at org.jvnet.hk2.internal.Utilities.justCreate(Utilities.java:1007)
  6. at org.jvnet.hk2.internal.ServiceLocatorImpl.create(ServiceLocatorImpl.java:962)
  7. at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:1054)
  8. at org.jvnet.hk2.internal.ServiceLocatorImpl.createAndInitialize(ServiceLocatorImpl.java:1046)
  9. at org.glassfish.jersey.server.ApplicationHandler.createApplication(ApplicationHandler.java:385)
  10. at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:342)
  11. at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:392)
  12. at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:177)
  13. at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:369)
  14. at javax.servlet.GenericServlet.init(GenericServlet.java:158)
  15. at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1183)
  16. at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)
  17. at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4913)
  18. at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedContext.deferredLoadOnStartup(TomcatEmbeddedContext.java:78)
  19. at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.startConnector(TomcatEmbeddedServletContainer.java:256)
  20. at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.start(TomcatEmbeddedServletContainer.java:181)
  21. at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.startEmbeddedServletContainer(EmbeddedWebApplicationContext.java:297)
  22. at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:145)
  23. at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:545)
  24. at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
  25. at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761)
  26. at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371)
  27. at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
  28. at org.springframework.boot.SpringApplication.run(SpringApplication.java:1186)
  29. at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175)
  30. at com.jiajian.yishi.YishiServiceProjectApplication.main(YishiServiceProjectApplication.java:17)
  31. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  32. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  33. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  34. at java.lang.reflect.Method.invoke(Method.java:498)
  35. at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
  36. at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
  37. at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
  38. at org.springframework.boot.loader.WarLauncher.main(WarLauncher.java:59)

  此种问题由于jersey无法通过不解压扫描war包中的包造成的,因为我的ResourceConfig如下:

  1. public class WebApplication extends ResourceConfig {
  2. public WebApplication() {
  3. System.out.println("WebApplication init...");

  4. //此处造成
  5. packages("com.jiajian.yishi.rest");
  6.  
  7. property(ServerProperties.TRACING, "ALL");
  8.  
  9. // Freemarker
  10. property(MvcFeature.TEMPLATE_BASE_PATH, "/WEB-INF/fm/");
  11. register(MvcFeature.class);
  12. register(FreemarkerMvcFeature.class);
  13. // PageViewBehavior
  14. register(PageViewContainerRequestFilter.class);
  15. register(PageViewContainerResponseFilter.class);
  16. }
  17. }

目前没有很好的解决方案,

如需使用Jersey可以,通过register(Resource.class) 实现

或者将所以Resource类组成一个单独模块,并通过在启动时unpacked。

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>org.springframework.boot</groupId>
  5. <artifactId>spring-boot-maven-plugin</artifactId>
  6. <configuration>
  7. <requiresUnpack>
  8. <dependency>
  9. <groupId>你的Resource的groupId</groupId>
  10. <artifactId>你的Resource的artifactId</artifactId>
  11. </dependency>
  12. </requiresUnpack>
  13. </configuration>
  14. </plugin>
  15. </plugins>
  16. </build>

  

Spring Boot + Jersey发生FileNotFoundException (No such file or directory)的更多相关文章

  1. spring boot + jersey工程由jar包转为war包在tomcat中启动报错问题

    第一步: 在maven下,将Spring Boot工程由jar转换为war包启动,很简单,将pom.xml文件中的packaging改为war <packaging>war</pac ...

  2. Spring Boot Jersey使用示例

    前言 本文将学习如何使用Spring Boot和Jersey框架,去配置和创建JAX-RS 2.0 REST API接口: 这个示例应用使用的是Jersey的Servlet容器去部署REST API接 ...

  3. 前端页面调用Spring boot接口发生的跨域问题

    最近要重构一个基于spring boot的后端API服务,需要再本地测试.在本地测试时,运行在本地的前端页面发送一个ajax请求访问后端API,然后浏览器报错blocked CORS policy. ...

  4. Spring Boot + Jersey

    Jersey是一个很好的Java REST API库.当你用Jersey实现REST的时候.是很自然的.同一时候Spring Boot是Java世界中还有一个很好的工具.它降低了程序的应用配置(< ...

  5. spring boot 1.4.1 with jsp file sample

    <!--pom.xml--> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" ...

  6. [Spring boot] Read values from external properties file

    Let's say we have a extral app.proporites file which contains some extra configuration: // resources ...

  7. Spring Boot通过命令行启动发生FileNotFoundException

    Spring Boot + Jersey 通过命令行启动会发生错误FileNotFoundException异常 异常信息如下: ERROR o.a.c.c.C.[Tomcat].[localhost ...

  8. Spring Boot Reference Guide

    Spring Boot Reference Guide Authors Phillip Webb, Dave Syer, Josh Long, Stéphane Nicoll, Rob Winch,  ...

  9. spring boot基础学习教程

    Spring boot 标签(空格分隔): springboot HelloWorld 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新 ...

随机推荐

  1. Eclipse 主题

    Eclipse开发环境默认都是白底黑字的,看到同事的Xcode中设置的黑灰色背景挺好看的,就去网络上查了一下.发现Eclipse也可以设置主题. http://eclipsecolorthemes.o ...

  2. Java中引用传递

    //Java中的引用传递 class Ref1{ int temp = 10 ; String Str = "hello"; } public class HelloWorld { ...

  3. Android官方命令深入分析之绘制9-patch

    9-patch是一个所见即所得的编辑器,允许你创建可以自动更改大小适应屏幕的bitmap图像.被选中的部分可以水平或垂直的进行缩放. 下面是使用9-patch工具创建一个9-patch图像的实例,首先 ...

  4. UNIX环境高级编程——死锁

    操作系统中有若干进程并发执行,它们不断申请.使用.释放系统资源,虽然系统的进程协调.通信机制会对它们进行控制,但也可能出现若干进程都相互等待对方释放资源才能继续运行,否则就阻塞的情况.此时,若不借助外 ...

  5. 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 ...

  6. 【一天一道LeetCode】#87. Scramble String

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...

  7. android异步任务asyntask详解

    在Android中实现异步任务机制有两种方式,Handler和AsyncTask. Handler模式需要为每一个任务创建一个新的线程,任务完成后通过Handler实例向UI线程发送消息,完成界面的更 ...

  8. java常用集合类详解(有例子,集合类糊涂的来看!)

    Framework集合框架是一个统一的架构,用来表示和操作集合.集合框架主要是由接口,抽象类和实现类构成.接口:蓝色:实现类:红色Collection|_____Set(HashSet)|       ...

  9. [java]Windows 7 配置jdk 1.7环境变量

     来自百度文库 Windows 7 配置jdk 1.7环境变量 环境:win7(32位)64位和下面差不多      jdk1.7 1.右击计算机-属性-高级系统设置-高级-环境变量,弹出&quo ...

  10. MySQL学习笔记_7_MySQL常用内置函数

    MySQL常用内置函数 说明: 1)可以用在SELECT/UPDATE/DELETE中,及where,orderby,having中 2)在函数里将字段名作为参数,变量的值就是字段所对应的每一行的值. ...