2014-06-07 25 views
1

我確實得到了奇怪的錯誤。 這裏是我的行家出發:HttpUnit HttpUnitOptions.setScriptingEnabled不工作

<dependency> 
       <groupId>httpunit</groupId> 
       <artifactId>httpunit</artifactId> 
       <version>1.7</version> 
       <scope>test</scope> 
       <exclusions> 
        <exclusion> 
         <artifactId>servlet-api</artifactId> 
         <groupId>javax.servlet</groupId> 
        </exclusion> 
       </exclusions> 
      </dependency> 

這裏是我的Java基礎類:

static{ 
//trying to make it to work.... 
      HttpUnitOptions.setScriptingEnabled(false); 
      HttpUnitOptions.setExceptionsThrownOnScriptError(false); 
     } 

     @BeforeMethod(groups = "integration") 
     public void setup() throws Exception { 
//not working.... 
      HttpUnitOptions.setScriptingEnabled(false); 
      HttpUnitOptions.setExceptionsThrownOnScriptError(false); 
     } 


     /** 
     * Sends request to servlet 
     * */ 
     protected WebResponse sendPostRequest(String d, List<CookieBean> cookies) throws Exception{ 
      WebConversation wc = new WebConversation(); 
      setCookies(wc, cookies); 
      PostMethodWebRequest post = new PostMethodWebRequest(SERVLET_URL); 
      post.setParameter(TrackingServlet.PARAM_D, d); 
      return wc.sendRequest(post); 
     } 

和Groovy測試類:

class CookieHandlingTest extends TrackingServletBaseTest { 

    static{ 
     HttpUnitOptions.setScriptingEnabled(false); 
     HttpUnitOptions.setExceptionsThrownOnScriptError(false); 
    } 

    @Test(groups = 'integration') 
    void testDummyRequest(){ 
     HttpUnitOptions.setScriptingEnabled(false); 
     HttpUnitOptions.setExceptionsThrownOnScriptError(false); 
     def result = sendPostRequest("d", null) 
     assertThat(result, notNullValue()) 
    } 


} 

And an error: 
testDummyRequest(CookieHandlingTest) Time elapsed: 0.558 sec <<< FAILURE! 
java.lang.NoClassDefFoundError: org/mozilla/javascript/Scriptable 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 

發生在我嘗試使用的WebConversation發送請求:

return wc.sendRequest(post); 

我做錯了什麼?

回答

2
java.lang.NoClassDefFoundError: org/mozilla/javascript/Scriptable 

包含org.mozilla.javascript.Scriptable.class的jar不在類路徑中。添加適合的meven依賴項。

+0

我想禁用腳本解釋。 http://httpunit.sourceforge.net/doc/faq.html#disable scripting – Sergey

+0

但是仍舊使用的類可能會引用這個和其他JavaScript類。因此,無論如何都要添加庫並且如您所編碼的那樣,禁用腳本執行。 –

+0

你是對的,它有幫助。我認爲禁用腳本解釋不需要腳本引擎的依賴性...... – Sergey