springBoot 打war包 程序包com.sun.istack.internal不存在的问题及解决方案

使用的是 idea - Lifecycle-package 的方式打包(maven)

确认  <packaging>war</packaging>

修改启动类:

(原启动类)

public class ExampleApplication {
  public static void main(String[] args) {
    SpringApplication.run(ExampleApplication.class, args);
  }
}

修改为:

public class ExampleApplication extends SpringBootServletInitializer {
  @Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    return builder.sources(ExampleApplication.class);
  }
  public static void main(String[] args) {
    SpringApplication.run(ExampleApplication.class, args);
  }
}

(至此:即可打包war成功,其中可能需要移除内置tomcat服务,导入tomcat API,不过在这里测试过没有问题,所以不操作)

假若打包成功,恭喜你,可以不用看下面的了。。。

在这里只说明打war报,出现程序包找不到的情况,eg:com.sun.istack.internal,最常见于使用@NotNull(在未解决期间,偶尔还是可以打包成功的,这时候是完全懵逼的)

程序包使用的是jre下的工具rt.jar,导入相关的maven信息也不行。

或者添加系统依赖<scope>system</scope>也行不通:引用:http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#System_Dependencies

下面介绍其他方式

添加plugin:maven-compiler-plugin

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <source>${java.version}</source>
    <target>${java.version}</target>
    <compilerArgs>
      <arg>-Xlint:deprecation</arg>
    </compilerArgs>
    <compilerArguments>
      <bootclasspath>${java.home}\lib\rt.jar;${java.home}\lib\jce.jar</bootclasspath>
    </compilerArguments>
  </configuration>
</plugin>

总结

以上所述是小编给大家介绍的springBoot 打war包 程序包com.sun.istack.internal不存在的问题及解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Spring Boot2如何构建可部署的war包

    默认情况下Spring Boot使用了内嵌的Tomcat服务器,项目最终被打成jar包运行,每个jar包可以被看作一个独立的Web服务器. 传统的Web开发,一般会将Web应用打成一个war包,然后将其部署到Web服务器中运行. Spring Boot也支持传统的部署模式. 开发环境:IntelliJ IDEA 2019.2.2 Spring Boot版本:2.1.8 1.新建一个名称为demo的Spring Boot项目. 2.修改pom.xml文件 下面粗体部分为所加代码,注释掉原来的bui

  • SpringBoot应用War包形式部署到外部Tomcat的方法

    这一篇文章介绍SpringBoot应用修改默认打jar形式部署为打war包形式,部署到外部Tomcat. SpringBoot应用默认打包成为可执行jar模式让我们感觉到部署的便捷,接下来给大家介绍一下SpringBoot项目打War包形式部署到外部Tomcat. 修改原有项目 1.修改项目 打开项目,修改pom文件: 1.项目中加入spring-boot-starter-web(如果是已经加入该依赖的项目可以忽略)和spring-boot-starter-tomcat依赖. 2.packagi

  • Springboot项目打war包docker包找不到resource下静态资源的解决方案

    前一段时间遇到一个问题,是关于读取项目中文件资源的问题.我是一个maven工程 我把一张照片放到resource下面,然后在本地读取的时候可以读取到,但是一旦打成WAR包以后就总是包找不到文件资源错误.我的war包是springboot打的war包,是内嵌的tomcat所以不解压,然后系统去找路径的时候会发现是个WAR包,而图片在WAR包内,所以找不到. 为了解决这个问题,我走了好多弯路,一直在路径上花费时间. 一开始使用修改配置文件的方式: # 配置静态资源访问前缀 spring.mvc.st

  • SpringBoot war包部署到Tomcat服务器

    (1)pom.xml文件修改<packaging>war</packaging>,默认是jar包,<build>节点中增加<finalName>springboot</finalName>,即生成war包的名字,完整pom.xml文件内容如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.

  • spring boot项目打包成war在tomcat运行的全步骤

    前言 使用maven创建的springboot项目,默认是jar包,springboot还有自己带的tomcat.现在需要将项目打包,并部署到服务器tomcat下面. 下面就让我们来一起把spring-boot项目按照平常的web项目一样发布到tomcat容器下,下面话不多说了,来一起看看详细的介绍吧 一.修改打包形式 在pom.xml里设置 <packaging>war</packaging> 二.移除嵌入式tomcat插件 在pom.xml里找到spring-boot-star

  • Spring Boot Gradle发布war到tomcat的方法示例

    1. 确保你项目能编译通过,安装java jdk 环境填写环境变量 2. 添加SpringBootServletInitializer的子类重写configure 这点是很坑爹的,比如说发布PHP之类的,或者其他的,一般开发的跟发布的没什么东西不一样,spring非要加这个才行,我之前没加,就复制的war到tomcat webapps目录就不行 package contacts; import org.springframework.boot.SpringApplication; import

  • Spring Boot+maven打war包的方法

    存在一个坑: 官网文档 指出以下前3步做法,但是这样只可以打出可运行的jar包,要打出war包还要在文档后面的链接跳到另一个页面,才能找到第四步的做法,也就是最终能够打出war包,可能有些朋友有些粗心没找到第四步的链接,而以为只做了前三步就可以打出war包了,结果一直出错,还以为自己的业务代码有问题,然后一直瞎折腾,浪费很多时间(比如我),因此我把整个过程写于此. 1.指定war打包方式 <packaging>jar</packaging> 2.pom.xml添加spring-bo

  • springboot项目打成war包部署到tomcat遇到的一些问题

    开发环境使用jdk1.8.0_60,把springboot 项目打成war包后, 部署到apache-tomcat-7.0.68时报错如下,换成apache-tomcat-8.0.9解决 org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/my-springboot-web-0.0.1

  • springBoot 打war包 程序包com.sun.istack.internal不存在的问题及解决方案

    使用的是 idea - Lifecycle-package 的方式打包(maven) 确认  <packaging>war</packaging> 修改启动类: (原启动类) public class ExampleApplication { public static void main(String[] args) { SpringApplication.run(ExampleApplication.class, args); } } 修改为: public class Exa

  • springboot的war和jar包的使用详解

    本篇和大家分享的是通过maven对springboot中打war包和jar包:war通常来说生成后直接放到tomcat的webapps下面就行,tomcat配置自动解压war,而jar一般通过命令行部署和启动: 首先,来实战怎么生成war包,主要来说可以分为3个步骤: •程序入口改造 •排除springboot内置tomcat •spring-boot-maven-plugin插件中配置程序入口 程序入口改造,我们需要把springboot的main入口屏蔽掉,然后继承SpringBootSer

  • IDEA2020.1启动SpringBoot项目出现java程序包:xxx不存在

    本地启动springboot项目一直报一个工具类的找不到,但是我看了好几次,那个类明明就在项目中,不知道为什么一启动项目就报错,,说这个包xxxx不存在,,弄了我一晚上没睡好觉,,整的我都快开始怀疑人生了,.我是谁?我在那?我还适合敲代码吗? Error:(3, 38) java: 程序包org.springframework.stereotype不存在 Error:(4, 47) java: 程序包org.springframework.web.bind.annotation不存在 Error

  • Tomcat启动springboot项目war包报错:启动子级时出错的问题

    今天公司springboot项目准备部署到测试服务器上进行测试,打包好war后放到tomcat里面启动后,前端文件能访问到,但是接口请求一直是404,一直找了很久的原因,tomcat启动是成功的,war打包的时候也提示build success了,tomcat启动日志发现报错: java.lang.IllegalStateException: 启动子级时出错   at org.apache.catalina.core.ContainerBase.addChildInternal(Containe

  • springboot使用war包部署到外部tomcat过程解析

    这篇文章主要介绍了springboot使用war包部署到外部tomcat过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 如果是war包部署到外部tomcat,需要增加SpringBootServletInitializer子类,并重写其configure方法,或者将main函数所在的类继承SpringBootServletInitializer子类,并重写configure方法. @SpringBootApplication //继承S

  • SpringBoot打成war包在tomcat或wildfly下运行的方法

    springboot默认的打包方式为jar包,jar包的有优点是不需要更改的配置,并且内嵌了tomcat,如果打成jar包直接可以丢到docker中运行测试.但是考虑到前端代码只能打成war包,因此干脆也将后端代码打成war包和前端的代码一起放在tomcat容器中的webapps中运行就好了. SpringBoot打包形式 默认情况下,创建的SpringBoot项目是按照jar包形式来进行打包的.同时,内置了tomcat的容器. 那么,此时如果想让springboot打包成war包,并部署到wi

  • SpringBoot如何读取war包jar包和Resource资源

    这篇文章主要介绍了SpringBoot如何读取war包jar包和Resource资源,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 场景描述 在开发过程中我们经常会碰到要在代码中获取资源文件的情况,而我在最近在SpringBoot项目中时碰到一个问题,就是在本地运行时,获取本地的xml资源文件是能够获取到的,但是项目打成war包jar包启动运行时,就会发生问题,报找不到资源文件的错误.然后经过寻找排查确定了是下面代码通过ClassLoader获

  • SpringBoot打War包上传到阿里云的LINUX服务器的操作方法

    下面的每一步应该都必不可少: 1.启动类 继承这个类,并且重新configure这个方法,return builder.sources(Code007Application.class); 2.pom 跳过测试打包会比较方便 <build> <finalName>code007</finalName> //这里为你打包后的war包的名字 <plugins> <plugin> <groupId>org.springframework.b

  • docker安装tomcat并部署Springboot项目war包的方法

    说来也简单,直接上教程吧,博主 1.首先在启动docker service docker start 2.拉取tomcat镜像. docker pull tomcat:8-jdk8 如果不加后面的8-jdk8  标签的话,会默认拉取latest,也就是最新的官方版本 3.安装完成后,做作容器,并启动tomcat docker run --name tomcat -p 8080:8080 如果正常安装后访问ip+端口出现404情况,进入tomcat目录,把原有webapps目录删除,并把webap

随机推荐