Domanda

Ho un'applicazione ADF, che in esecuzione sul mio server. Stavo cercando di eseguire alcuni casi di test di integrazione su di esso. Ho usato per usare apache quadro cactus per eseguire test su normali applicazioni web. I miei casi di test si estenderebbero CactusStrutsTestCase e verranno eseguito. Ho cercato di affrontare, applicazione ADF con stesso concetto. Ma io sono sempre errore di connessione rifiutata

java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)

Quindi la mia domanda è che, è possibile fare dei test in applicazione dell'ADF con un ServletTestcase che fa parte del quadro Cactus?

Grazie Jijoy

È stato utile?

Soluzione

Quello che state facendo è possibile. Lo so, perché l'ho fatto.

Prima di tutto, fosso genuino Apache Cactus. Non è essere più supportato. Si desidera scaricare JSFUnit e l'uso che, invece. Si avvale di Apache Cactus, ma è ancora mantenuto attivamente.

Vi suggerisco di creare il proprio banco di prova che si estende ServletTestCase invece di usare direttamente ServletTestCase.

public class EJBTestCase extends ServletTestCase {
protected InitialContext context;

public static final String userId = "demouser";


public EJBTestCase(String string) {
    super(string);
}

private InitialContext getInitialContext() throws NamingException {
  Hashtable env = new Hashtable();

  env.put(Context.SECURITY_PRINCIPAL, "username");
  env.put(Context.SECURITY_CREDENTIALS, "password");


     return new InitialContext(env);
}

public void setUp() throws Exception {
    super.setUp();

    context = getInitialContext();

}

public void tearDown() throws Exception {
    super.tearDown();

    context.close();
}

public EJBTestCase() {
    super();
}
}

Successivamente, è necessario configurare il file web.xml:

  <filter>
    <filter-name>JSFUnitFilter</filter-name>
    <filter-class>org.jboss.jsfunit.framework.JSFUnitFilter</filter-class>
  </filter>
...

    <filter-mapping>
        <filter-name>JSFUnitFilter</filter-name>
        <servlet-name>ServletTestRunner</servlet-name>
      </filter-mapping>
      <filter-mapping>
        <filter-name>JSFUnitFilter</filter-name>
        <servlet-name>ServletRedirector</servlet-name>
      </filter-mapping>

...

  <servlet>
    <servlet-name>ServletRedirector</servlet-name>
    <servlet-class>org.jboss.jsfunit.framework.JSFUnitServletRedirector</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>ServletTestRunner</servlet-name>
    <servlet-class>org.apache.cactus.server.runner.ServletTestRunner</servlet-class>
  </servlet>

...

  <servlet-mapping>
    <servlet-name>ServletRedirector</servlet-name>
    <url-pattern>/ServletRedirector</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>ServletTestRunner</servlet-name>
    <url-pattern>/ServletTestRunner</url-pattern>
  </servlet-mapping>

Infine, quando si esegue il test case si deve passare nel parametro cactus.contextURL.

-Dcactus.contextURL=http://127.0.0.1:7101/MyApp

Presumo che si sta utilizzando JDeveloper. È quindi possibile impostare questo sotto proprietà del progetto> Esegui / Debug / Profilo -> Modifica> Impostazioni di avvio -.> Opzioni Java

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top