2016-09-21 32 views
2

我在maven中添加pubnub後,我的Spring啓動應用程序無法啓動。在Maven依賴關係中添加pubnub後,Spring啓動應用程序無法啓動

這裏是我的pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <version>0.0.1-SNAPSHOT</version> 
    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.4.0.RELEASE</version> 
     <relativePath /> 
    </parent> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
      <version>1.4.0.RELEASE</version> 
      <exclusions> 
       <exclusion> 
        <groupId>org.slf4j</groupId> 
        <artifactId>log4j-over-slf4j</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/com.pubnub/pubnub --> 
     <dependency> 
      <groupId>com.pubnub</groupId> 
      <artifactId>pubnub</artifactId> 
      <version>4.0.14</version> 
     </dependency> 
    </dependencies> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <start-class>com.XXX.Application</start-class> 
     <java.version>1.8</java.version> 
    </properties> 

    <groupId>smartSense</groupId> 
    <artifactId>XXX</artifactId> 
    <name>XXX</name> 
    <description>smartSense Construction ERP</description> 
</project> 

我得到這個例外在運行春季啓動罐子

例外:

Exception in thread "main" java.lang.reflect.InvocationTargetException 
    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.JarLauncher.main(JarLauncher.java:58) 
Caused by: java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.slf4j.helpers.NOPLoggerFactory loaded from jar:file:/home/nitin/projects/bitbucket/cerp/target/cerp-0.0.1-SNAPSHOT.jar!/BOOT-INF/lib/slf4j-api-1.7.21.jar!/). If you are using WebLogic you will need to add 'org.slf4j' to prefer-application-packages in WEB-INF/weblogic.xml Object of class [org.slf4j.helpers.NOPLoggerFactory] must be an instance of class ch.qos.logback.classic.LoggerContext 
    at org.springframework.util.Assert.isInstanceOf(Assert.java:346) 
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.getLoggerContext(LogbackLoggingSystem.java:221) 
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.getLogger(LogbackLoggingSystem.java:213) 
    at org.springframework.boot.logging.logback.LogbackLoggingSystem.beforeInitialize(LogbackLoggingSystem.java:98) 
    at org.springframework.boot.logging.LoggingApplicationListener.onApplicationStartedEvent(LoggingApplicationListener.java:222) 
    at org.springframework.boot.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:204) 
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:166) 
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:138) 
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:121) 
    at org.springframework.boot.context.event.EventPublishingRunListener.started(EventPublishingRunListener.java:62) 
    at org.springframework.boot.SpringApplicationRunListeners.started(SpringApplicationRunListeners.java:48) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1185) 
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1174) 
    at com.cerp.Application.main(Application.java:89) 
    ... 8 more 

我建微的服務,爲實時web應用程序,我想要使用pubnub發送通知到Web瀏覽器。 如果我刪除了pubnub,那麼它工作正常。 你能幫忙解決這個問題嗎?

+0

看到這個舊的SO線程:http://stackoverflow.com/questions/23984009/disable-logback-in-springboot –

回答

2

似乎pubnub具有傳遞性依賴於:

<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-nop</artifactId> 
    <version>1.7.21</version> 
    <scope>compile</scope> 
</dependency> 

如果您添加排除您pubnub性(請參閱here)它可能已經工作。但是,這可能會破壞pubnub中的日誌記錄:/ - 但我會試一試。

+1

是的!!,這對我有用。謝謝。 –

相關問題