baidu / starlight

Java implementation for Baidu RPC, multi-protocol & high performance RPC.
Apache License 2.0
958 stars 282 forks source link

运行异常 #130

Closed encrylife closed 5 years ago

encrylife commented 5 years ago

把例子下载下来运行不了,brpc-spring-boot-examples-server maven打包是可以成功,运行的时候一直提示

ERROR org.springframework.boot.SpringApplication - Application run failed java.lang.ExceptionInInitializerError: null at com.baidu.bjf.remoting.protobuf.ProtobufProxy.doCreate(ProtobufProxy.java:354) at com.baidu.bjf.remoting.protobuf.ProtobufProxy.create(ProtobufProxy.java:253) at com.baidu.bjf.remoting.protobuf.ProtobufProxy.create(ProtobufProxy.java:175) at com.baidu.brpc.JprotobufRpcMethodInfo.(JprotobufRpcMethodInfo.java:42) at com.baidu.brpc.server.ServiceManager.registerService(ServiceManager.java:113) at com.baidu.brpc.server.ServiceManager.registerService(ServiceManager.java:76) at com.baidu.brpc.server.RpcServer.registerService(RpcServer.java:304) at com.baidu.brpc.spring.RpcServiceExporter.afterPropertiesSet(RpcServiceExporter.java:102) at com.baidu.brpc.spring.boot.autoconfigure.SpringBootAnnotationResolver.annotationAtTypeAfterStarted(SpringBootAnnotationResolver.java:168) at com.baidu.brpc.spring.annotation.CommonAnnotationBeanPostProcessor.onApplicationEvent(CommonAnnotationBeanPostProcessor.java:473) at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:402) at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:359) at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:896) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:552) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) at com.baidu.brpc.example.springboot.server.RpcServerTest.main(RpcServerTest.java:28) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) 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:51) at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52) Caused by: java.lang.RuntimeException: compiler is null maybe you are on JRE enviroment please change to JDK enviroment. at com.baidu.bjf.remoting.protobuf.utils.compiler.JdkCompiler.(JdkCompiler.java:107) at com.baidu.bjf.remoting.protobuf.utils.compiler.JdkCompiler.(JdkCompiler.java:89) at com.baidu.bjf.remoting.protobuf.utils.JDKCompilerHelper.(JDKCompilerHelper.java:30) ... 29 common frames omitted

打包完成后都运行不了 windows 或者centos都一样 参照各种答案仍然不能运行 现有pom文件如下

<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">

4.0.0
<parent>
    <groupId>com.baidu</groupId>
    <artifactId>brpc-spring-boot-examples</artifactId>
    <version>2.5.4</version>
</parent>

<artifactId>brpc-spring-boot-examples-server</artifactId>
<packaging>jar</packaging>

<name>${project.artifactId}</name>
<url>http://maven.apache.org</url>
<description>Java implementation for BRPC</description>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <jdk.version>1.8</jdk.version>
</properties>

<dependencyManagement>

    <dependencies>
    <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
org.projectlombok lombok 1.18.8 provided
        <dependency>
            <!-- Import dependency management from Spring Boot -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.1.4.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>com.baidu</groupId>
        <artifactId>brpc-spring-boot-examples-api</artifactId>
        <version>${project.version}</version>
    </dependency>
    <dependency>
        <groupId>com.baidu</groupId>
        <artifactId>brpc-spring-boot-starter</artifactId>
        <version>${project.version}</version>
    </dependency>
    <dependency>
        <groupId>com.baidu</groupId>
        <artifactId>brpc-java-naming-zookeeper</artifactId>
    </dependency>
    <dependency>
        <groupId>jdk.tools</groupId>
        <artifactId>jdk.tools</artifactId>
        <version>1.8</version>
        <scope>system</scope>
        <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
     </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.7.25</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
com.baidu jprotobuf

<build>
    <finalName>${project.name}</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.1.8.RELEASE</version>
            <configuration>
                <mainClass>com.baidu.brpc.example.springboot.server.RpcServerTest</mainClass>
                <fork>true</fork>
                <executable>D:\Program Files\Java\jdk1.8.0_20\bin\javac.exe</executable>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

wenweihu86 commented 5 years ago

@encrylife 看不出来啥错误。可以加下微信,把源码发给我看下。

encrylife commented 5 years ago

好 微信多少

wenweihu86 commented 5 years ago

@encrylife 升级到2.5.8应该就没问题了。

encrylife commented 5 years ago

@encrylife 升级到2.5.8应该就没问题了。

嗯 我按照你说的将`

com.baidu
            <artifactId>jprotobuf-precompile-plugin</artifactId>
            <version>1.2.15</version>
            <configuration>
                <!--                    <skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>-->
                <filterClassPackage>com.baidu</filterClassPackage>
                <generateProtoFile>true</generateProtoFile>
            </configuration>
            <executions>
                <execution>
                    <phase>compile</phase>
                    <goals>
                        <goal>precompile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>`

放到api里面编译之后完美运行~