struts2改spring boot过程中一些问题及解决办法记录

标签: 异常处理
1325人阅读 评论(0) 收藏 举报
分类:

1、引入依赖包的问题
一般情况下,常用的jar包在maven仓库都可以找到,并能知道如何在pom.xml文件中配置,但是有时候需要在一些项目中使用一些我们自己写的代码生成的jar包,要引入maven中就需要做一些必要的处理。
我们项目中就有这样的情况存在,以下是处理方式之一,就是用maven的命令生成maven方式的jar,然后加入到本地库中引用,打包命令如下:

mvn install:install-file -Dfile=huateng-comm-1.0.0.jar -DgroupId=com.huateng  -DartifactId=huateng-comm -Dversion=1.0.0 -Dpackaging=jar

2、使用maven给spring boot项目打jar包的问题
2.1、由于eclipse中默认配置的 installed jres是jre而不是jdk,导致打包时抛出如下异常:

Caused by: org.apache.maven.plugin.compiler.CompilationFailureException: Compilation failure
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

解决办法是把eclipse中的installed jres改为jdk。

2.2、没有指定启动类导致打包抛出如下异常
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project mobileShopFrontDemo: There are test failures.
解决办法是在maven的pom.xml文件中做如下配置:
com.MobileShopFrontDemoApplication
也就是指定启动类。

3、logback相关jar版本问题:
原本非spring boot的老项目使用的logback版本是1.1.2,现在用了spring boot1.4.3,默认引入的logback的版本是1.1.7。
在原本的项目中logback.xml文件中有如下日志配置:

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <Encoding>UTF-8</Encoding>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>G:/logs/${app_name}_%d{yyyy-MM-dd}_%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
                 <maxFileSize>200MB</maxFileSize> 
            </timeBasedFileNamingAndTriggeringPolicy>       
            <maxHistory>365</maxHistory>
        </rollingPolicy>
          ...... 
    </appender>

新的spring boot项目在不改动logback.xml的情况下启动抛出如下异常:

Exception in thread "main" java.lang.IllegalStateException: Logback configuration error detected: 
ERROR in ch.qos.logback.core.joran.spi.Interpreter@20:13 - no applicable action for [Encoding], current ElementPath  is [[configuration][appender][Encoding]]

解决办法是去掉如下配置:

<Encoding>UTF-8</Encoding>

4、启动spring boot的启动类抛出异常
这个问题其实怪自己,我用maven生成了项目的jar在cmd窗口运行着,但是忘记了这件事,又在eclipse中启动了这个项目,从而导致端口占用,eclipse中启动不起来。
只不过在查看控制台的错误的时候,我从下网上看,首先看到的是如下异常:

Caused by: java.lang.ClassNotFoundException: org.eclipse.jetty.server.NetworkConnector
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

于是我以为是jetty的什么问题,就去网上搜了一下,但是还没搜出结果的时候我偶然想起来在cmd窗口还启动着一个应用,于是去控制台一看,果然看到了这样的提示:

java.net.BindException: Address already in use: bind
    at sun.nio.ch.Net.bind(Native Method)
    at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:124)
    at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
    at org.eclipse.jetty.server.nio.SelectChannelConnector.open(SelectChannelConnector.java:187)
    at org.eclipse.jetty.server.AbstractConnector.

很显然是端口被占用了,换个新的端口,成功启动。

查看评论

jdk1.6环境下struts2改spring boot方案

公司目前上线的两个项目都是比较老的,java版本是jdk1.6,mvc框架使用的是strus2。 随着不久前struts2官方公布新的安全漏洞,我们也不得不做出相应的整改措施,除了之前博文中所说把s...
  • tuzongxun
  • tuzongxun
  • 2017-07-22 21:58:15
  • 1982

Spring整合Struts2步骤及完整实例

Spring与Struts2的整合:Spring与Struts2的整合其实很简单,下面是整合步骤: 一、复制jar文件。 把struts2-spring-plugin-..*.jar和spring.j...
  • zhoucheng05_13
  • zhoucheng05_13
  • 2017-01-06 21:02:20
  • 1966

Spring Boot开发之弄月吟风 (三)

今天来看下,如何在Spring Boot中使用热加载和集成Velocity,废话不多说,直接看下面的maven的pom依赖:  Xml代码   xml version=...
  • z69183787
  • z69183787
  • 2015-06-16 17:07:32
  • 14352

spring boot(六):如何优雅的使用mybatis

这两天启动了一个新项目因为项目组成员一直都使用的是mybatis,虽然个人比较喜欢jpa这种极简的模式,但是为了项目保持统一性技术选型还是定了 mybatis。到网上找了一下关于spring boot...
  • gebitan505
  • gebitan505
  • 2017-02-08 17:07:01
  • 89170

拥抱SpringBoot/Cloud:从SpringMVC到Spring Boot

本文欢迎转载,转载前请联系作者,经允许后方可转载。转载后请注明出处,谢谢! http://blog.csdn.net/colton_null 作者:喝酒不骑马 Colton_Null from CSD...
  • Colton_Null
  • Colton_Null
  • 2018-02-04 18:35:10
  • 362

java单测 ch.qos.logback.core.joran.spi.JoranException: Parser configuration error occurred

ch.qos.logback.core.joran.spi.JoranException: Parser configuration error occurred
  • nmgzywd
  • nmgzywd
  • 2017-01-12 11:12:46
  • 3012

springboot中少见的java.lang.ClassNotFoundException: ch.qos.lorgback.classic.PatternLayout

在项目中创建了一个spiringboot的module,作用时测试activemq和elasticsearch的结合使用。module中添加了web和IO/activeMQ 运行代码的时候发生 S...
  • Striving0814
  • Striving0814
  • 2017-09-23 14:17:59
  • 957

ch.qos.logback.core.joran.spi.JoranException

Caused by: java.lang.ClassNotFoundException: ch.qos.logback.core.joran.spi.JoranException 确保这以下两个包都已...
  • Love_Legain
  • Love_Legain
  • 2017-06-26 15:21:36
  • 3524

【Springboot】新建springboot项目时出现 java.lang.NoClassDefFoundError: ch/qos/logback/core/joran/spi/JoranExc

&amp;lt;version&amp;gt;1.5.10.RELEASE&amp;lt;/version&amp;gt;运行项目时候报错, 从maven上面 重新下载一下logback-classi...
  • Jack_EUSong
  • Jack_EUSong
  • 2018-02-24 17:08:21
  • 101

六、Spring Boot日志管理

Spring Boot内部日志系统使用的是Commons Logging,但开放底层的日志实现。默认为会Java Util Logging, Log4J, Log4J2和Logback提供配置。每种情...
  • L_Sail
  • L_Sail
  • 2017-04-12 22:57:34
  • 1147
    公告栏
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 89万+
    积分: 1万+
    排名: 1865