Hallo,
Ik ben bezig om een programma te schrijven wat plugins moet laden. Dit moet dynamisch gebeuren en ik mag de classe niet meer compileren (dus geen import). ik had iets en dat werkt lokaal wel (met een main) maar als ik het via Tomcat Axis runt dan geeft hij een java.lang.ClassCastException. De plugins en de hoofdclasse staan in verschillende packets (wat denk ik die melding geeft). Wie weet hoe ik dit kan oplossen? dat het gewoon werkt als er een SOAP bericht binnen komt die het opstart ipv een main methode.
ik heb geprobeert om gebruik te maken van "instanceof" maar deze geeft telkens een "false" terug. Verder ben ik hier al een aantal dagen mee bezig en het lukt me nog steeds niet. hij blijft steken op het stukje: lader = (PluginInterface) c.newInstance();
c.newInstance() doet het wel (hij laat wel de constructor zien van de RunPlugin..zie uitvoer). Het opvragen werkt dus wel maar zodra ik iets in de methode wilt stoppen van RunPlugin gaat het fout.
de fout die ik krijg via tomcat is als volgt:

Bij PluginLoader.java komt het SOAP bericht binnen (gewoon als String type).
Ik heb nu screenshots gemaakt wat het lezen wat gemakkelijker maakt (de tekst was idd slecht te volgen):
Als eerste de classe waar het soap bericht binnen komt:

De interface:

De plugin die geladen moet worden:

Weet iemand een oplossing ? ik heb de files zoals ik ze test gezet op.
Ik heb hier niet veel ervaring mee dus als ik hoop dat ik zo genoeg informatie geeft...
http://www.rkpn.nl/java/PluginLoaderTest.rar
Ik ben bezig om een programma te schrijven wat plugins moet laden. Dit moet dynamisch gebeuren en ik mag de classe niet meer compileren (dus geen import). ik had iets en dat werkt lokaal wel (met een main) maar als ik het via Tomcat Axis runt dan geeft hij een java.lang.ClassCastException. De plugins en de hoofdclasse staan in verschillende packets (wat denk ik die melding geeft). Wie weet hoe ik dit kan oplossen? dat het gewoon werkt als er een SOAP bericht binnen komt die het opstart ipv een main methode.
ik heb geprobeert om gebruik te maken van "instanceof" maar deze geeft telkens een "false" terug. Verder ben ik hier al een aantal dagen mee bezig en het lukt me nog steeds niet. hij blijft steken op het stukje: lader = (PluginInterface) c.newInstance();
c.newInstance() doet het wel (hij laat wel de constructor zien van de RunPlugin..zie uitvoer). Het opvragen werkt dus wel maar zodra ik iets in de methode wilt stoppen van RunPlugin gaat het fout.
de fout die ik krijg via tomcat is als volgt:

Bij PluginLoader.java komt het SOAP bericht binnen (gewoon als String type).
Ik heb nu screenshots gemaakt wat het lezen wat gemakkelijker maakt (de tekst was idd slecht te volgen):
Als eerste de classe waar het soap bericht binnen komt:

De interface:

De plugin die geladen moet worden:

Weet iemand een oplossing ? ik heb de files zoals ik ze test gezet op.
Ik heb hier niet veel ervaring mee dus als ik hoop dat ik zo genoeg informatie geeft...
http://www.rkpn.nl/java/PluginLoaderTest.rar
[ Voor 56% gewijzigd door Verwijderd op 18-04-2005 21:41 ]