JBoss проблем или?
4 отговора
107 прегледа
JBoss проблем или?
Dali towa e problem ili ne neznam , ama strashno mnogo me drazni. Ako Njakoj e poglejdal WAF shte e po-najasno.
Имам
(това се намира в Tupcho.EAR)
public class SignOnEvent extends EventSupport { .....
}
а следния пасаж (той е от друг клас)
(това също се намира в Tupcho.EAR)
...
System.out.println("e.getClass() = "+e.getClass());
if (e instanceof com.sun.j2ee.blueprints.waf.event.EventSupport){
System.out.println("e instanceof EventSupport");
} else {
System.out.println("!e instanceof EventSupport");
}
if (e instanceof com.tupcho.controller.events.SignOnEvent){
System.out.println("e instanceof SignOnEvent");
} else {
System.out.println("!e instanceof SignOnEvent");
}
..
ми дава следната простотия:
17:22:12,437 INFO [STDOUT] e.getClass() = class com.tupcho.controller.events.SignOnEvent
17:22:12,437 INFO [STDOUT] e instanceof EventSupport
17:22:12,437 INFO [STDOUT] !e instanceof SignOnEvent
(не е инстанция на второто!!!!!!!!!!!)
Или аз съм Тъпчо или Да!!!
когато диплойна един път на Прясно стартиран JBoss
всичко е ОК. : тогава в конзолата имам:
17:31:33,859 INFO [STDOUT] e.getClass() = class com.tupcho.controller.events.SignOnEvent
17:31:33,859 INFO [STDOUT] e instanceof EventSupport
17:31:33,859 INFO [STDOUT] e instanceof SignOnEvent
когато обаче направя редеплой и се получава онази простотия(по-горната).
оправя се по два начина. Ако рестартирам ЖБосс-а или ...
Тук по-интересното е че имам два .EAR - а единя ми съдържа EventSupport (WAF.EAR)
а другия SignOnEvent. (Tupcho.EAR) (
когато редеплойвам аз редеплойвам втория(Tupcho.EAR), в който се намира и кода по-нагоре.
... та втория начин за да се оправят нещата са когато редеплой-на първия WAF.EAR. и след това Tupcho.EAR)тогава всичко тръгва както трябва ..... до следващия деплой... Самоче аз в WAF.EAR грам не пипам и неща да го редеплоивам.
Проблема е че това страшно ме дразни. а и не ми се струва много логично.
Ако имате някаква идея или някой се е сблъсквал с подобен проблем ще съм благодарен.
Имам
(това се намира в Tupcho.EAR)
public class SignOnEvent extends EventSupport { .....
}
а следния пасаж (той е от друг клас)
(това също се намира в Tupcho.EAR)
...
System.out.println("e.getClass() = "+e.getClass());
if (e instanceof com.sun.j2ee.blueprints.waf.event.EventSupport){
System.out.println("e instanceof EventSupport");
} else {
System.out.println("!e instanceof EventSupport");
}
if (e instanceof com.tupcho.controller.events.SignOnEvent){
System.out.println("e instanceof SignOnEvent");
} else {
System.out.println("!e instanceof SignOnEvent");
}
..
ми дава следната простотия:
17:22:12,437 INFO [STDOUT] e.getClass() = class com.tupcho.controller.events.SignOnEvent
17:22:12,437 INFO [STDOUT] e instanceof EventSupport
17:22:12,437 INFO [STDOUT] !e instanceof SignOnEvent
(не е инстанция на второто!!!!!!!!!!!)
Или аз съм Тъпчо или Да!!!
когато диплойна един път на Прясно стартиран JBoss
всичко е ОК. : тогава в конзолата имам:
17:31:33,859 INFO [STDOUT] e.getClass() = class com.tupcho.controller.events.SignOnEvent
17:31:33,859 INFO [STDOUT] e instanceof EventSupport
17:31:33,859 INFO [STDOUT] e instanceof SignOnEvent
когато обаче направя редеплой и се получава онази простотия(по-горната).
оправя се по два начина. Ако рестартирам ЖБосс-а или ...
Тук по-интересното е че имам два .EAR - а единя ми съдържа EventSupport (WAF.EAR)
а другия SignOnEvent. (Tupcho.EAR) (
когато редеплойвам аз редеплойвам втория(Tupcho.EAR), в който се намира и кода по-нагоре.
... та втория начин за да се оправят нещата са когато редеплой-на първия WAF.EAR. и след това Tupcho.EAR)тогава всичко тръгва както трябва ..... до следващия деплой... Самоче аз в WAF.EAR грам не пипам и неща да го редеплоивам.
Проблема е че това страшно ме дразни. а и не ми се струва много логично.
Ако имате някаква идея или някой се е сблъсквал с подобен проблем ще съм благодарен.
Re: JBoss проблем или?
Vseki EAR bi triabvalo da ima sobstven ClassLoader. Za da razberesh kyde ti e problema triabva da znaesh kakvi sa ClassLoader-ite ne vseki class i interface.
Kakyvto i da e konkretnia problem, tova koeto se opitvash da pravish ne izglezhda dobre. Ne triabva da ti se nalaga da polzvash class-ove ot dva razlichni EAR. Samia fakt che polzvash instanceof govori che neshto v design-a na prilozhenieto ne e nared.
Kakyvto i da e konkretnia problem, tova koeto se opitvash da pravish ne izglezhda dobre. Ne triabva da ti se nalaga da polzvash class-ove ot dva razlichni EAR. Samia fakt che polzvash instanceof govori che neshto v design-a na prilozhenieto ne e nared.
Re: JBoss проблем или?
Instanceof beshe samo primer, istinskata greshka, kojato mi dava e ClassCastException, kogato se opitwam da castna ot edinja opisan class w drugia. Za da razbera kakwo mu e slojih tozi instanceof, toj e samo primer, inache ne go polzwam :). Inache za drugoto shte se zamislja, WAF.EAR ne sum go pisal az, toj e napulno gotov, prosto go polzwam pri men, po sushtija nachin kakto go polzwa i Java Petstore. No wse pak sigurno si praw, che trqbwa da si wzema neobhodimite componenti ot nego i da gi sloja w moja ear, togawa neshtata shte se oprawjat, no poneje raboti "wse pak" bjh reshil da ne go pipam.
Javno shte mi se naloji, Mersi.
Javno shte mi se naloji, Mersi.
Re: JBoss проблем или?
antijb e absoliutno praw,
dwa ednakwi klasa zaredeni ot razli4ni classLoaderi sa razli4ni,i opit za cast -> ClassCast
Veroqtno si prawil nqkakwi hackowe za da se doberesh do towa koeto ti trqbwa.Nai 4isto e da si deploynesh jar-a koito ti trqbwa zaedno s ear-a ti ili da go deploynesh kato library(ako JBoss-a ima takawa funkcionalnost)
dwa ednakwi klasa zaredeni ot razli4ni classLoaderi sa razli4ni,i opit za cast -> ClassCast
Veroqtno si prawil nqkakwi hackowe za da se doberesh do towa koeto ti trqbwa.Nai 4isto e da si deploynesh jar-a koito ti trqbwa zaedno s ear-a ti ili da go deploynesh kato library(ako JBoss-a ima takawa funkcionalnost)