JBoss проблем или?

4 отговора 107 прегледа
#1

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 #2

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.

Отговор
в отговор на antijb #3

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.

Отговор
в отговор на Tupcho #4

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)

Отговор
в отговор на 435 #5

Re: JBoss проблем или?

Da, tochno purwoto naprawih i se oprawiha neshtata

Отговор