2015-07-05 25 views
0

我們有一個JUnit/Jersey集成測試,當通過Maven從命令行運行時,「拒絕連接」失敗。但是,從Eclipse運行時,測試通過。似乎Grizzly容器沒有啓動時出現了一些錯誤,但我找不到任何錯誤消息或日誌,它只是默默地失敗。這是在我們從Java 7 CentOS 6環境升級到Java 8 CentOS 7環境時發生的。下面是一個簡單的測試,重現此錯誤:從行家Spring/Jersey/Grizzly在Maven命令行中導致無提示測試失敗,但在Eclipse中成功?

public class CrobichaGrizzlyIntegrationTest extends JerseyTest { 
    private WebResource webResource; 
    private static final String PACKAGE_NAME = "xxx"; 
    byte[] bytes; 
    byte[] expectedResponses; 

    public CrobichaGrizzlyIntegrationTest() { 
     super(
       new WebAppDescriptor.Builder(PACKAGE_NAME) 
         .clientConfig(
           new DefaultClientConfig()).servletPath("/") 
         .contextParam("contextConfigLocation", "classpath:app-config.xml") 
         .servletClass(SpringServlet.class) 
         .contextListenerClass(ContextLoaderListener.class) 
         .build() 
     ); 
    } 

    @Before 
    public void setup() { 
     bytes = ReputationHelper.createReputationRequest().toByteArray(); 
     expectedResponses = ReputationHelper.createReputationResponse().toByteArray(); 
    } 

    // 1. valid POST/GET(E2E) request 
    @Test 
    public void testPostRequestSuccess() throws Exception { 
     webResource = resource().path("xyz").queryParam("query", "value"); 

     final byte[] response = 
       webResource.type(HttpUtils.MIME_APPLICATION_PROTOBUF).accept(HttpUtils.MIME_APPLICATION_PROTOBUF) 
         .cookie(new Cookie("cookie", "abcd")).post(byte[].class, bytes); 

     final ResponseList expectedResponseList = ResponseList.parseFrom(expectedResponses); 
     final ResponseList responseList = ResponseList.parseFrom(response); 

     Assert.assertEquals(expectedResponseList.getResponse(0), responseList.getResponse(0)); 
    } 
} 

錯誤報告:

<?xml version="1.0" encoding="UTF-8"?> 
<testsuite name="xxx.CrobichaGrizzlyIntegrationTest" time="0" tests="1" errors="1" skipped="0" failures="0"> 
    <properties> 
    <property name="java.runtime.name" value="Java(TM) SE Runtime Environment"/> 
    <property name="sun.boot.library.path" value="/usr/java/jdk1.8.0_45/jre/lib/amd64"/> 
    <property name="java.vm.version" value="25.45-b02"/> 
    <property name="java.vm.vendor" value="Oracle Corporation"/> 
    <property name="java.vendor.url" value="http://java.oracle.com/"/> 
    <property name="path.separator" value=":"/> 
    <property name="guice.disable.misplaced.annotation.check" value="true"/> 
    <property name="java.vm.name" value="Java HotSpot(TM) 64-Bit Server VM"/> 
    <property name="file.encoding.pkg" value="sun.io"/> 
    <property name="user.country" value="US"/> 
    <property name="sun.java.launcher" value="SUN_STANDARD"/> 
    <property name="sun.os.patch.level" value="unknown"/> 
    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/> 
    <property name="user.dir" value="---removed---"/> 
    <property name="java.runtime.version" value="1.8.0_45-b14"/> 
    <property name="java.awt.graphicsenv" value="sun.awt.X11GraphicsEnvironment"/> 
    <property name="java.endorsed.dirs" value="/usr/java/jdk1.8.0_45/jre/lib/endorsed"/> 
    <property name="os.arch" value="amd64"/> 
    <property name="java.io.tmpdir" value="/tmp"/> 
    <property name="line.separator" value="&#10;"/> 
    <property name="java.vm.specification.vendor" value="Oracle Corporation"/> 
    <property name="os.name" value="Linux"/> 
    <property name="classworlds.conf" value="/usr/share/maven/bin/m2.conf"/> 
    <property name="sun.jnu.encoding" value="UTF-8"/> 
    <property name="java.library.path" value="/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib"/> 
    <property name="java.specification.name" value="Java Platform API Specification"/> 
    <property name="java.class.version" value="52.0"/> 
    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/> 
    <property name="os.version" value="3.10.0-229.4.2.el7.x86_64"/> 
    <property name="user.home" value="/home/chris_robichaud"/> 
    <property name="user.timezone" value="America/New_York"/> 
    <property name="java.awt.printerjob" value="sun.print.PSPrinterJob"/> 
    <property name="file.encoding" value="UTF-8"/> 
    <property name="java.specification.version" value="1.8"/> 
    <property name="user.name" value="chris_robichaud"/> 
    <property name="java.class.path" value="/usr/share/maven/boot/plexus-classworlds.jar"/> 
    <property name="java.vm.specification.version" value="1.8"/> 
    <property name="sun.arch.data.model" value="64"/> 
    <property name="java.home" value="/usr/java/jdk1.8.0_45/jre"/> 
    <property name="sun.java.command" value="org.codehaus.plexus.classworlds.launcher.Launcher integration-test -rf :project_name -X"/> 
    <property name="java.specification.vendor" value="Oracle Corporation"/> 
    <property name="user.language" value="en"/> 
    <property name="awt.toolkit" value="sun.awt.X11.XToolkit"/> 
    <property name="java.vm.info" value="mixed mode"/> 
    <property name="java.version" value="1.8.0_45"/> 
    <property name="java.ext.dirs" value="/usr/java/jdk1.8.0_45/jre/lib/ext:/usr/java/packages/lib/ext"/> 
    <property name="sun.boot.class.path" value="/usr/java/jdk1.8.0_45/jre/lib/resources.jar:/usr/java/jdk1.8.0_45/jre/lib/rt.jar:/usr/java/jdk1.8.0_45/jre/lib/sunrsasign.jar:/usr/java/jdk1.8.0_45/jre/lib/jsse.jar:/usr/java/jdk1.8.0_45/jre/lib/jce.jar:/usr/java/jdk1.8.0_45/jre/lib/charsets.jar:/usr/java/jdk1.8.0_45/jre/lib/jfr.jar:/usr/java/jdk1.8.0_45/jre/classes"/> 
    <property name="java.vendor" value="Oracle Corporation"/> 
    <property name="maven.home" value="/usr/share/maven"/> 
    <property name="file.separator" value="/"/> 
    <property name="java.vendor.url.bug" value="http://bugreport.sun.com/bugreport/"/> 
    <property name="sun.cpu.endian" value="little"/> 
    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/> 
    <property name="sun.desktop" value="gnome"/> 
    <property name="sun.cpu.isalist" value=""/> 
    </properties> 
    <testcase name="testPostRequestSuccess" classname="xxx.CrobichaGrizzlyIntegrationTest" time="0"> 
    <error message="java.net.ConnectException: Connection refused" type="com.sun.jersey.api.client.ClientHandlerException"><![CDATA[com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:589) 
    at java.net.Socket.connect(Socket.java:538) 
    at sun.net.NetworkClient.doConnect(NetworkClient.java:180) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) 
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:211) 
    at sun.net.www.http.HttpClient.New(HttpClient.java:308) 
    at sun.net.www.http.HttpClient.New(HttpClient.java:326) 
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1168) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1104) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:998) 
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:932) 
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1282) 
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1257) 
    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler$1$1.getOutputStream(URLConnectionClientHandler.java:238) 
    at com.sun.jersey.api.client.CommittingOutputStream.commitStream(CommittingOutputStream.java:117) 
    at com.sun.jersey.api.client.CommittingOutputStream.write(CommittingOutputStream.java:83) 
    at com.sun.jersey.core.impl.provider.entity.ByteArrayProvider.writeTo(ByteArrayProvider.java:95) 
    at com.sun.jersey.core.impl.provider.entity.ByteArrayProvider.writeTo(ByteArrayProvider.java:59) 
    at com.sun.jersey.api.client.RequestWriter.writeRequestEntity(RequestWriter.java:300) 
    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:217) 
    at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:153) 
    at com.sun.jersey.api.client.Client.handle(Client.java:652) 
    at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682) 
    at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74) 
    at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:570) 
    at xxx.CrobichaGrizzlyIntegrationTest.testPostRequestSuccess(CrobichaGrizzlyIntegrationTest.java:88) 
]]></error> 
    </testcase> 
</testsuite> 
+0

請發佈堆棧跟蹤和日誌 –

+0

添加堆棧跟蹤和錯誤報告 – crobicha

回答

1

只是想萬一別人添加一個答案運行到這個問題:我花了一些時間清理我的maven pom文件,它似乎已修復它。從來沒有找到根本原因。

相關問題