2016-10-18 5 views
0

Ich habe Wildfly Schwarm-Anwendung, App-Klasse, Container und Bereitstellung und Fassaden haben, alles funktioniert gut, aber wenn ich UserFacades zu einem anderen Paket geändert und von App Hauptklasse getrennt, die ausgeführt wird Anwendung fehlgeschlagen!wildfly Schwarm: Fehler beim Ändern der Fassaden Pakete

importieren org.wildfly.swarm.Swarm;

public class App { 

    public static void main(String[] args) throws Exception { 

     MyContainer.newContainer() 
       .start() 
       .deploy(MyDeployment.createDeployment()); 

    } 


public class MyContainer { 

    private static final String MYSQL_OPTIONS = "autoReconnect=true&useSSL=false&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC"; 

    public static Container newContainer() throws Exception { 
     Container container = new Container(); 

     container.fraction(new DatasourcesFraction() 
       .jdbcDriver("mysql", (d) -> { 
        d.driverClassName("com.mysql.jdbc.Driver"); 
        d.xaDatasourceClass("com.mysql.jdbc.jdbc2.optional.MysqlXADataSource"); 
        d.driverModuleName("com.mysql"); 
       }) 
       .dataSource("MyDS", (ds) -> { 
        ds.driverName("mysql"); 
        ds.connectionUrl("jdbc:mysql://localhost:3306/tfm?" + MYSQL_OPTIONS); 
        ds.userName("root"); 
        ds.password("root"); 
       }) 
     ); 

     container.fraction(new MySQLJPAFraction() 
       .inhibitDefaultDatasource() 
       .defaultDatasource("jboss/datasources/MyDS") 
     ); 

     return container; 
    } 

public class MyDeployment { 

    public static JAXRSArchive createDeployment() throws Exception { 
    JAXRSArchive deployment = ShrinkWrap.create(JAXRSArchive.class); 

    deployment.addPackage(App.class.getPackage()); 
    deployment.addAsWebInfResource(
     new ClassLoaderAsset("META-INF/persistence.xml", App.class.getClassLoader()), "classes/META-INF/persistence.xml"); 
    deployment.addAsWebInfResource(
     new ClassLoaderAsset("META-INF/load.sql", App.class.getClassLoader()), "classes/META-INF/load.sql"); 

     return deployment; 
    } 
} 


2016-10-19 01:12:17,308 ERROR [stderr] (main)  Caused by: java.lang.NoClassDefFoundError: Lcom/project/backend/facades/UserFacade; 
2016-10-19 01:12:17,309 ERROR [stderr] (main)  Caused by: java.lang.ClassNotFoundException: com.project.backend.facades.UserFacade from [Module \"deployment.082daa7c-bb37-4a26-9740-29e7de1da93b.war:main\" from Service Module Loader]"}} 

2016-10-19 01:12:17,309 ERROR [stderr] (main) at org.wildfly.swarm.container.runtime.RuntimeDeployer.deploy(RuntimeDeployer.java:159) 

2016-10-19 01:12:17,310 ERROR [stderr] (main) at org.wildfly.swarm.container.Container.deploy(Container.java:432) 

2016-10-19 01:12:17,310 ERROR [stderr] (main) at org.wildfly.swarm.Swarm.deploy(Swarm.java:122) 

2016-10-19 01:12:17,310 ERROR [stderr] (main) at com.project.backend.App.main(App.java:15) 

Was ist falsch? Wie kann ich die Haupt-App-Klasse so einstellen, dass alle Pakete gescannt werden?

+0

nicht auf die Frage relevant, aber bitte beachten Sie, dass die 'Container' Klasse ist veraltet. Der richtige heißt 'Swarm'. – Ladicek

Antwort

0

Oh vermisste ich neue Pakete Deployment Klasse :( deployment.addPackage ("com.myproject.facades") hinzufügen;

+0

Es ist jetzt behoben? – Ken

Verwandte Themen