Arquillian: Deployment mit korrekter Endung versehen!

Mit Arquillian kann man elegant und einfach Teile von Java-EE-Anwendungen einem Integrationstest unterziehen. Der zu testende Anwendungsteil wird dabei mit Hilfe von ShrinkWrap paketiert:

@RunWith(Arquillian.class)
public class EjbRemoteTest {
  @Deployment(testable = false)
  public static JavaArchive createDeployment()  {
    JavaArchive archive = ShrinkWrap.create(JavaArchive.class, "baselibs-jboss-test.jar");

    archive.addClasses(UserInfoBean.class, UserInfo.class);
    archive.addClasses(RemoteStringBean.class, RemoteString.class);
    archive.addClasses(SystemStateBean.class, SystemState.class);
    archive.addAsResource("META-INF/jboss-ejb3.xml");

    return archive;
  }

Dabei ist es wichtig, die zum Deployment passende Endung im Dateinamen zu verwenden – im Beispiel also .jar, da es ein EJB-Deployment ist. Tut man das nicht, wird ggf. nur ein Teil des paketierten Anwendungteils deployt. Würde man im Beispiel das Deployment nur „baselibs-jboss-test“ nennen, wird ein JBoss 7.1.1 zwar die enthaltenen EJBs deployen, ignoriert aber den zusätzlichen Deskriptor „META-INF/jboss-ejb3.xml“, der u. a. Security-Einstellungen enthält. In der Folge würde z. B. ein angemeldeter User die EJBs als anonymer User aufrufen, was sicher nicht gewollt war und auch nicht der Situatuation in der späteren Anwendung entspricht.

Advertisements

Über Dirk Weil
Dirk Weil ist seit 1998 als Berater im Bereich Java tätig. Als Geschäftsführer der GEDOPLAN GmbH in Bielefeld ist er für die Konzeption und Realisierung von Informationssystemen auf Basis von Java EE verantwortlich. Seine langjährige Erfahrung in der Entwicklung anspruchsvoller Unternehmenslösungen machen ihn zu einem kompetenten Ansprechpartner und anerkannten Experten auf dem Gebiet Java EE. Er ist Autor in Fachmagazinen, hält Vorträge und leitet Seminare und Workshops aus einem eigenen Java-Curriculum.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: