argon bulletin board

Факултети => Факултет по математика и информатика => Темата е започната от: JOKe в 10.07.2006, 23:09:16

Титла: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: JOKe в 10.07.2006, 23:09:16
ако някои е правил нещо с EJB 3.0 .. да хелпне
че закъсах
иначе пробвам на Jboss качил сам всичко както трябва от инсталър с EJB3 enabled обаче ми се струва че не се делпоиват EJB-тата..
deployвам през JDeveloper той какво прави просто EAR file с 2та класа и ги копира в jboss\server\default\deploy vsi4ko normalno osven kogato trygna da vzimam EJB-to zashtoto go nqmaaa ;)
javax.naming.NameNotFoundException: beans.SimpleSession not bound
   at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)

Test client :
    public static void main(String[] args) {
        InitialContext ctx;
        try {

            ctx = new InitialContext();
            ctx.addToEnvironment("java.naming.factory.initial",
                                 "org.jnp.interfaces.NamingContextFactory");
            ctx.addToEnvironment("java.naming.factory.url.pkgs",
                                 "org.jboss.naming:org.jnp.interfaces");
            ctx.addToEnvironment(Context.PROVIDER_URL, "jnp://localhost:1099");
            SimpleSession simpleSession =
                (SimpleSession)ctx.lookup(SimpleSession.class.getName());
            System.out.println(simpleSession.sayHello("EJB3"));
        } catch (NamingException e) {
            e.printStackTrace();
        }
    }
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: VooDooMaN в 11.07.2006, 09:47:28
Не съм работил с EJB3, а само с 2.1,  и правя само предположение - не трябвя ли да правиш lookup по jndi name и после да претипизираш към ejb интерфейса?
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: Nikolay Manchev в 11.07.2006, 10:09:09
Я си пусни JMX конзолата и погледни вижда ли ти се там EJB-то в JNDI дървото.

Поздрави,

Николай Манчев
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: JOKe в 11.07.2006, 10:54:58
da eto kato Invoke-na listXML()
4.0.3 EJB 3 deploy
org.jnp.interfaces.NamingContext

SimpleSession
org.jnp.interfaces.NamingContext

remote
$Proxy65

ama test clienta si znae negovoto
probvah i s ime SimpleSession/remote - rezultata e the same.
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: JOKe в 11.07.2006, 10:58:17
eto vsichko:
mport javax.ejb.Stateless;

@Stateless(name="SimpleSession")
public class SimpleSessionBean implements SimpleSession {
public SimpleSessionBean() {
}

public String sayHello(String name) {
return "Hello "+name;
}
}

package beans;

import javax.ejb.Remote;

@Remote
public interface SimpleSession {
public String sayHello(String name) ;
}


testoviq client go ima gore no vse pak :

package client;

import beans.SimpleSession;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class SimpleSessionClient {
public static void main(String[] args) {
InitialContext ctx;
try {


ctx = new InitialContext();
ctx.addToEnvironment("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
ctx.addToEnvironment("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
ctx.addToEnvironment(Context.PROVIDER_URL,"jnp://localhost:1099");
SimpleSession simpleSession
= (SimpleSession) ctx.lookup(SimpleSession.class.getName());
System.out.println(simpleSession.sayHello("EJB3"));
} catch (NamingException e) {
e.printStackTrace();
}
}
}


jar tf ear fail
META-INF/application.xml
SimpleSessionBean.jar
jar tf jar fail
beans/SimpleSession.class
beans/SimpleSessionBean.class

kogato deployvam v loga na JBOSS vijdam :
23:28:12,296 INFO [EARDeployer] Undeploying J2EE application, destroy step: fil
e:/G:/jboss-4.0.4.GA/server/default/deploy/SimpleSessionBean.ear
23:28:12,296 INFO [EARDeployer] Undeployed J2EE application: file:/G:/jboss-4.0
.4.GA/server/default/deploy/SimpleSessionBean.ear
23:28:12,296 INFO [EARDeployer] Init J2EE application: file:/G:/jboss-4.0.4.GA/
server/default/deploy/SimpleSessionBean.ear
23:28:12,375 INFO [Ejb3Deployment] EJB3 deployment time took: 16
23:28:12,390 INFO [JmxKernelAbstraction] installing MBean: jboss.j2ee:ear=Simpl
eSessionBean.ear,jar=SimpleSessionBean.jar,name=SimpleSession,service=EJB3 with
dependencies:
23:28:12,406 INFO [EJBContainer] STARTED EJB: beans.SimpleSessionBean ejbName:
SimpleSession
23:28:12,421 INFO [EJB3Deployer] Deployed: file:/G:/jboss-4.0.4.GA/server/defau
lt/tmp/deploy/tmp25139SimpleSessionBean.ear-contents/SimpleSessionBean.jar
23:28:12,421 INFO [EARDeployer] Started J2EE application: file:/G:/jboss-4.0.4.
GA/server/default/deploy/SimpleSessionBean.ear
neshto stranno obahce
v JMX console-ta vijdam
SimpleSessionBean
no v jboss.j2ee apps
veroqtno tova e MBean za saotvetnoto EJB de ama vse pak
eto paste
jboss.j2ee
ear=SimpleSessionBean.ear,jar=SimpleSessionBean.jar,name=SimpleSession,service=EJB3
module=SimpleSessionBean.jar,service=EJB3

application.xml-a koito e generiran ot Jdeveloper sydyrja :
<?xml version = '1.0' encoding = 'windows-1251'?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd" version="1.4" xmlns="http://java.sun.com/xml/ns/j2ee">
<display-name>SimpleSessionBean</display-name>

SimpleSessionBean.jar
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: JOKe в 11.07.2006, 11:01:04
Не съм работил с EJB3, а само с 2.1,  и правя само предположение - не трябвя ли да правиш lookup по jndi name и после да претипизираш към ejb интерфейса?
ami ne dokolkoto razbrah ne e nujno da minavam prez  PortableRemoteObject.narrow moga napravo da castna do Remote Interfeisa zashtoto vse pak tuka nqma Home interfeis i nqma na kakvo da vikame create()
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: Nikolay Manchev в 11.07.2006, 15:05:40
Абе я го lookup-ни като ползваш string варианта на метода. Т.е. кажи му само "SimpleSession" вместо class.getName() и т.н.

Поздрави,

Николай
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: JOKe в 11.07.2006, 15:44:54
SimpleSession пробвах го и така пак същото
пробвах и s bean.SimpleSession защото taka e paketa pak sashtoto
probah i s java env otpred .. togava pyk garmi che nemojel da nameri bound "comp"
nqmam ideq bati omagiosaniq absurden kryg..
a ve q pogledni applicaiton.xml taka li trqbva dae ? men tva mi izglejda kato nqkav super stranen  J2EE application xml.
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: Phyz в 11.07.2006, 18:30:22
Що не видиш какво има въобще bind нато в тоя твоя контекст. Пробвай примерно с:

        Context ctx = new InitialContext();
        ctx.addToEnvironment("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
        ctx.addToEnvironment("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
        ctx.addToEnvironment(Context.PROVIDER_URL,"jnp://localhost:1099");
        NamingEnumeration it = ctx.list("");
        Object obj;
       
        while (it.hasMoreElements()) {
            obj = it.nextElement();
            System.out.println(obj);
        }

Ако има подконтексти - типовете са им org.jnp.interfaces.NamingContext. Може и тях да сканираш рекурсивно докато си намериш бийна... или не го намериш въобще :)
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: JOKe в 11.07.2006, 22:21:32
znachi izhoda ot tova e :
XAConnectionFactory: org.jboss.mq.SpyXAConnectionFactory
TopicConnectionFactory: org.jboss.naming.LinkRefPair
EventDispatcher: org.jboss.ws.eventing.mgmt.DispatcherDelegate
UserTransactionSessionFactory: $Proxy42
UIL2ConnectionFactory: javax.naming.LinkRef
UIL2XAConnectionFactory: javax.naming.LinkRef
QueueConnectionFactory: org.jboss.naming.LinkRefPair
topic: org.jnp.interfaces.NamingContext
queue: org.jnp.interfaces.NamingContext
SimpleSessionBean: org.jnp.interfaces.NamingContext
ConnectionFactory: org.jboss.mq.SpyConnectionFactory
UserTransaction: org.jboss.tm.usertx.client.ClientUserTransaction
jmx: org.jnp.interfaces.NamingContext
UILXAConnectionFactory: javax.naming.LinkRef
UILConnectionFactory: javax.naming.LinkRef
Process exited with exit code 0.

t.e. SimpleSessionBean si e tam stranno zashto e narechen SimpleSessionBean a ne SimpleSession KAKTO E V VSICHKI TUTORIALS kakto i da e.
sega probvah da napisha sledniq client

        InitialContext ctx;
        try {

            ctx = new InitialContext();
            ctx.addToEnvironment("java.naming.factory.initial",
                                 "org.jnp.interfaces.NamingContextFactory");
            ctx.addToEnvironment("java.naming.factory.url.pkgs",
                                 "org.jboss.naming:org.jnp.interfaces");
            ctx.addToEnvironment(Context.PROVIDER_URL, "jnp://localhost:1099");
            SimpleSession simpleSession =
                (SimpleSession)ctx.lookup("SimpleSessionBean");
            System.out.println(simpleSession.sayHello("EJB3"));

        } catch (NamingException e) {
            e.printStackTrace();
        }

razlikata e che tyrsq SimpleSessionBean a ne SimpleSession ili SimpleSession/remote btw s poslednoto dava che nemoje da nameri boudnnat "remote" !?!?!?! :) ludnica.
ta izhoda e
Exception in thread main
java.lang.ClassCastException: org.jnp.interfaces.NamingContext
   at client.SimpleSessionClient.main(SimpleSessionClient.java:39)
Process exited with exit code 1.
i poznaite koi e red 39
            SimpleSession simpleSession =
                (SimpleSession)ctx.lookup("SimpleSessionBean");
otnovo pastevam edin drug red vsichki znaqt koi
"public class SimpleSessionBean implements SimpleSession {"
E KVA E TAZI BOZA NEZNAM chesno basi magiite
pak polzvam
@Stateless(name="SimpleSession")
public class SimpleSessionBean implements SimpleSession {
tova e EJB-to
i interfeisa e
@Remote
public interface SimpleSession {

eto pak JNDIView list-a
 +- SimpleSessionBean (class: org.jnp.interfaces.NamingContext)
  |   +- SimpleSession (class: org.jnp.interfaces.NamingContext)
  |   |   +- remote (proxy: $Proxy58 implements interface beans.SimpleSession,interface org.jboss.ejb3.JBossProxy,interface javax.ejb.EJBObject)
hora vie ste posledna nadejda chesto daite ideq.
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: JOKe в 11.07.2006, 22:42:27
Phyz
tiq imena deto vadi tva koeto mi dade sa imenata na Deploymen profiles :)
primer
JBoss Deploy (class: org.jnp.interfaces.NamingContext)
  |   +- Pisnami (class: org.jnp.interfaces.NamingContext)
  |   |   +- localStatefulProxyFactory (class: org.jboss.ejb3.stateful.StatefulLocalProxyFactory)
  |   |   +- local (class: java.lang.Object)
  |   |   +- remote (class: java.lang.Object)
  |   |   +- remoteStatefulProxyFactory (proxy: $Proxy77 implements interface org.jboss.ejb3.ProxyFactory)

nenzam shto taka stava

onzi tvoq primer vadi
JBoss Deploy: org.jnp.interfaces.NamingContext

i e normalno da gyrmi s ClassCastException
iavno
ctx.lookup(lookUpva za Enterprise Application name ) a ne za EJb-to koeto se namira v neq..
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: JOKe в 11.07.2006, 22:56:16
eto deploynah edno i sashto EJB v 2 EJB archive-a
JBoss Deploy (class: org.jnp.interfaces.NamingContext)
  |   +- Pisnami (class: org.jnp.interfaces.NamingContext)
  |   |   +- localStatefulProxyFactory (class: org.jboss.ejb3.stateful.StatefulLocalProxyFactory)
  |   |   +- local (class: java.lang.Object)
  |   |   +- remote (class: java.lang.Object)
  |   |   +- remoteStatefulProxyFactory (proxy: $Proxy77 implements interface org.jboss.ejb3.ProxyFactory)
pisnami (class: org.jnp.interfaces.NamingContext)
  |   +- Pisnami (class: org.jnp.interfaces.NamingContext)
  |   |   +- localStatefulProxyFactory (class: org.jboss.ejb3.stateful.StatefulLocalProxyFactory)
  |   |   +- local (class: java.lang.Object)
  |   |   +- remote (class: java.lang.Object)
  |   |   +- remoteStatefulProxyFactory (proxy: $Proxy77 implements interface org.jboss.ejb3.ProxyFactory)

i e normalno da ne moje da vzeme Pisnami shtoto go ima i v JBOSS delpoy i v pisnami .. taka che ... ? kak mojem da kajem che tyrsq tochno ejb .. ili kak moga da kaja jndiName-a s nqkva anotaciq pri delpoy na EJb-to ili znam li :>

namerih nqkva boza
@RemoteBinding(jndiBinding="testPisnami")
obahce neshto ne raboti mai mai :>
posle v JNDIView-to ne vijdam takova ime kakto i mi kazva che nqma boundnato takova
inache tova se namira v
import org.jboss.annotation.ejb.RemoteBinding;
i e nqkav fuckign class na JBoss
info :
http://docs.jboss.org/ejb3/app-server/reference/build/reference/en/html_single/index.html
a ma ne varshi rabota taka che kakto i da e.
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: JOKe в 11.07.2006, 23:30:50
OLEEEEE
proraboti
ta eto otgovora
Kato vseki Windows User az ne namerih Reshenie na problema a Zaobikolih problema.
a imenno
razkarah typiq JAR ot typiq EAR
deploynah samo Jar-a
posle vzeh reference s "HomeInterfaceName/remote"
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: Nikolay Manchev в 12.07.2006, 07:08:28
Браво!

Като следваща стъпка след намирането на решението ти предлагам да оставиш JBoss-а и да си намериш свестен Application Server  :wink:
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: JOKe в 12.07.2006, 09:44:37
хахахаха да :) бтв .. ето това че jar в Ear прави проблем говори много лошо за Jboss
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: Phyz в 12.07.2006, 11:56:45
znachi izhoda ot tova e :
XAConnectionFactory: org.jboss.mq.SpyXAConnectionFactory
TopicConnectionFactory: org.jboss.naming.LinkRefPair
EventDispatcher: org.jboss.ws.eventing.mgmt.DispatcherDelegate
UserTransactionSessionFactory: $Proxy42
UIL2ConnectionFactory: javax.naming.LinkRef
UIL2XAConnectionFactory: javax.naming.LinkRef
QueueConnectionFactory: org.jboss.naming.LinkRefPair
topic: org.jnp.interfaces.NamingContext
queue: org.jnp.interfaces.NamingContext
SimpleSessionBean: org.jnp.interfaces.NamingContext
ConnectionFactory: org.jboss.mq.SpyConnectionFactory
UserTransaction: org.jboss.tm.usertx.client.ClientUserTransaction
jmx: org.jnp.interfaces.NamingContext
UILXAConnectionFactory: javax.naming.LinkRef
UILConnectionFactory: javax.naming.LinkRef
Process exited with exit code 0.

Казах ти че подконтекстовете са ти от тип org.jnp.interfaces.NamingContext. JNDI е като фаилова система - с поддиректории. В случая SimpleSessionBean ти е поддиректория. Трябваше да се сетиш да и поискаш списъка с нещо като ctx.list("SimpleSessionBean"). Вътре най-вероятно е имало нещо като "remote : nekyf.smahnat.Class"  и това ти е проксито към remote ния ти интерфейс. Един вид трябва да го lookup неш с "SimpleSessionBean/remote". само "SimpleSessionBean" ти връща поддконтекста (поддиректорията) и много ясно че ще гръмне с CCE.

Като следваща стъпка след намирането на решението ти предлагам да оставиш JBoss-а и да си намериш свестен Application Server  :wink:

Това ми звучи горе долу като "Като следваща стъпка ти предлагам да оставиш програмирането и да се зафанеш с нещо доста по-смислено..."
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: JOKe в 12.07.2006, 13:03:48
xaxaxa za men nqma smisleni neshta ;)
ok mersi vajnoto e ceh raboti
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: JOKe в 12.07.2006, 13:48:10
oki kato minavam prez EAR.
          InitialContext ctx;
          try {

              ctx = new InitialContext();
              ctx.addToEnvironment("java.naming.factory.initial",
                                   "org.jnp.interfaces.NamingContextFactory");
              ctx.addToEnvironment("java.naming.factory.url.pkgs",
                                   "org.jboss.naming:org.jnp.interfaces");
              ctx.addToEnvironment(Context.PROVIDER_URL, "jnp://localhost:1099");
              NamingContext ne=(NamingContext)ctx.lookup("StatefullEARFile");
             NamingEnumeration it= ne.list("");
            Object obj;
                   
                    while (it.hasMoreElements()) {
                        obj = it.nextElement();
                        System.out.println(obj);
                    }
           
          } catch (NamingException e) {
              e.printStackTrace();
          }

eto tova... znachi vzimam NamingContext-a narechen StatefullEARFile i go listvam
i to vadi
SimpleSession : org.jnp.interfaces.NamingContext
tva hubavo ama posle ako mu kaja

ako mu kaja
  NamingEnumeration it= ne.list("SimpleSession");
to vadi :
remote: java.lang.Object
remoteStatefulProxyFactory: $Proxy72
i znachi reshavam da vzema az s lookup(SimpleSession/remote") i gyrmi s
Exception in thread main
java.lang.ClassCastException: javax.naming.Reference
   at client.TestClient.main(TestClient.java:25)

 kadeto go kastvam do SimpleSession ( koeto mi e remote interfeisa ) .
kvo pak obyrkah :)

code :
          InitialContext ctx;
          try {

              ctx = new InitialContext();
              ctx.addToEnvironment("java.naming.factory.initial",
                                   "org.jnp.interfaces.NamingContextFactory");
              ctx.addToEnvironment("java.naming.factory.url.pkgs",
                                   "org.jboss.naming:org.jnp.interfaces");
              ctx.addToEnvironment(Context.PROVIDER_URL, "jnp://localhost:1099");
              NamingContext ne=(NamingContext)ctx.lookup("StatefullEARFile");
             SimpleSession ses=(SimpleSession) ne.lookup("SimpleSession/remote");
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: JOKe в 12.07.2006, 15:50:33
eto kak go izpraskah
slojih mu jndiName na nqkav remoteBinding
tva e nqkva smahnata anotaciq samo za JBOSS
@Stateful(name = "SimpleSession")
@org.jboss.annotation.ejb.RemoteBinding(jndiBinding = "LUDNICA")

i posle si go vadi ot 1vo nivo na JNDIView-to i go vzimam s
SimpleSession xax = (SimpleSession) ctx.lookup("LUDNICA");
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: Atanas Todorov в 12.07.2006, 16:42:50
Малко късно забелязвам темата, но като гледам вече си намерил начина, по който става. Преди няколко месеца от JBoss въведоха тези анотации (@LocalBinding и @RemoteBinding) и промениха имената, с които се байндват интерфейсите на EJB-тата.

Преди това се байндваха FQN на интерфейсите, но решиха да го направят така, че lookup-името да включва и името на EAR-а - предполагам с цел да се предотвратят проблеми с дублиращи се имена на бийн-интерфейсите, диплойнати в различни EAR-и (а това не е редно да създава проблеми, имайки предвид, че тези приложения могат да са си съвсем независими /така да се каже поне от гледна точка на клас лоудерите/). Иначе така наистина малко се поусложнява кода, но явно са решили, че си струва да се направи тази жертва.

Та така или иначе промяната (за добро или лошо) е факт. Очевидно не е хубаво да се хардкод-ват имената на EAR-ите, ето защо е най-добре да се ползват тези анотации. А те са си чисто "JBoss-овски", поради простата причина, че EJB спецификацията не казва нищо (или почти нищо) по въпроса свързан с JNDI lookup имената и почти всички въпроси свързани с class loaders, видимост на класове и прочие...

Колкото до PortableRemoteObject.narrow(...), той се ползваше не само при remote home, но и при remote component интерфейсите, ама това е друга тема, свързана с IIOP съвместимост между различните контейнери и няма общо с името за lookup-ване.

Поздрави,
Наско

Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: Atanas Todorov в 12.07.2006, 16:52:18
Като следваща стъпка след намирането на решението ти предлагам да оставиш JBoss-а и да си намериш свестен Application Server  :wink:

Ще ми е интересно да споделиш кои са конкретните неща дето не те кефят в JBoss и които те карат да мислиш, че той не е "свестен" app server? Не те питам за да се заформя спор, просто ми е интересно. Едва ли причината се крие в това, че е с отворен код - доколкото ми е известно ти май не си от хората, които гледат на всички продукти с отворен код като на несериозни/непрофесионални такива...?
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: JOKe в 12.07.2006, 20:48:01
dobre a drugite serveri kak se spravqt s tozi problem togava s dublirashtite imena sled kato specifikaciqta ne kazva nishto te kakvo pravqt ?! :)
bi mi bilo interesno da nzam
btw Atanas Todorov veroqtno Nikolay Manchev imashe predvid Oracle Application Server veroqtno :P :))
zashto ne che JBoss e losh i GlassFish e super i kakvo li ne , ama ima produkti zad koito e dobre da se zastane zad golqma firma i ima takvia za koito e dobre da sa open
naprimer edin Browser e iako da e Open i Free :)
Edna Linux distribuciq izpolzvana za Serveri e po dobre spored men da si e s platen Support i etc. naprimer Redhat.
li4no az predpochitam Redhat pred Debian naprimer.
ne che u nas polzvam Redhat a, ne Debian, naprotiv - Debian polzvam ama ako vidq Hosting na Redhat  i Hosting na Debian a ve bih si kupil na Redhat neznam :>
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: Nikolay Manchev в 13.07.2006, 08:26:25
Ще ми е интересно да споделиш кои са конкретните неща дето не те кефят в JBoss и които те карат да мислиш, че той не е "свестен" app server?

Знаеш ли, нямам нищо конкретно против него. По-скоро явно съм свикнал да работя с по-тежък клас неща и затова много не го вземам насериозно. Преди около 3 г. мигрирах една доста голяма система от WebLogic на JBoss и на целия team ни побеля косата основно заради performance issue-та. Явно от тогава са ми кривите впечатления. В допълнение, аз горе-долу вярвам на разните системни анализатори като Gartner, IDC, Burton Group и т.н. А в техните годишни анализи JBoss-ът винаги е някъде в раздел "niche players".

Друго, което определено ме дразни е простотията на Marc Flury. Имаше не една и две негови изцепки (например историята с чековете за разработчиците, ако следиш Slashdot). Та те уж се бият в гърдите че са free, че community-то така и онака, а накрая въртят, сучат и все до $$$ довеждат нещата. Нали сега са собственост на RedHat (интересно ми е какво точно купиха RH за $400 милиона - LGPL кода или community-то) тепърва ще има интересности според мен.

Разбира се, че не гледам на всички open source продукти по лош начин. Всичките ми машини търкалят Linux-и. От нещата на APACHE съм страшно доволен... Eclipse-то ми е винаги отворено... Изобщо, явно JBoss ми е докарал някаква психическа травма в миналото и затова го недолюбвам  :-)

Поздрави,

Николай
Титла: Re: Някои правил нещо с EJB 3.0 ? нужна ми е помощ
Публикувано от: Atanas Todorov в 13.07.2006, 10:49:32
По принцип основния bottle neck на EJB контейнерите по отношение на performance-a преди се състоеше в ORM частта /сиреч ентити бийновете/. Най-лошото бе, че един J2EE сървър за да бъде съвместим, няма как да е особено бърз, поради многото недомислици в EJB spec-a и най-вече в частта му касаеща ентити бийновете. От тук J2EE сървърите като цяло си спечелиха лошата слава на бавни и тромави животни...

След като Java Persistence-a замени ентити бийновете обаче, картинката е доста по-различна. Както предполагам знаеш, в имплементацията на JBoss отдолу стои Hibernate, който се слави като един от най-добрите ORM-и и може да се каже, че е бърз и ефективен (стига да се ползва правилно!).

Та с две думи мисля, че в момента картинката е доста по-различна спрямо преди. Сървъри като JBoss AS и Oracle AS (с неговия TopLink) са с едни гърди напред пред другите AS, заради техните ORM решения, които не случайно послужиха и като основа за Java Persistence-a /евала на Сън, че го направиха де/...