Announcement

Collapse
No announcement yet.

@EJB NullPointerException bei Aufruf

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • @EJB NullPointerException bei Aufruf

    Hallo...

    Ich habe wahrscheinlich nun ein grundsätzliches Problem mit dem EJB konzept
    beim aufruf in meinen page klassen, die zur kommunikation mit den jsp seiten da sind, bekomme ich eine nullpointerexception hier ausschnittsweise code, um das problem zu verstehen
    Code:
    //Interface
    
    package sellManagement.ejbs;
    
    import javax.ejb.Remote;
    import javax.faces.model.SelectItem;
    
    import sellManagement.data.Customer;
    
    @Remote
    public interface CustomerManagement {
    
    	Customer[] getAllCustomers() throws CustomerException;
    [.....]
    
    }
    
    
    //Bean
    
    package sellManagement.ejbs;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.LinkedList;
    import java.util.List;
    
    import javax.ejb.Stateless;
    import javax.faces.application.FacesMessage;
    import javax.faces.context.FacesContext;
    import javax.faces.model.SelectItem;
    
    import sellManagement.data.Customer;
    
    
    @Stateless(name = "customerManagement")
    public class CustomerManagementBean implements CustomerManagement {
    
    
    	public Customer[] getAllCustomers() throws CustomerException {
    
    		Connection connection = null;
    		Statement statement = null;
    		ResultSet resultSet = null;
    
    		List<Customer> allCustomers = new LinkedList<Customer>();
    
    		try {
    			Class.forName("org.gjt.mm.mysql.Driver").newInstance();
    			connection = DriverManager.getConnection(url, user, pass);
    			statement = connection.createStatement();
    			resultSet = statement.executeQuery("SELECT * FROM customers");
    
    			while (resultSet.next()) {
    				allCustomers.add(new Customer(resultSet.getInt("id"), resultSet
    						.getString("firstname"), resultSet
    						.getString("lastname"), resultSet.getInt("school"),
    						resultSet.getString("emailadress")));
    			}
    		} catch (SQLException e) {
    			throw new CustomerException("retrieving customer list", e);
    
    		} catch (Exception e) {
    			System.err.println("Unable to load drivers");
    		} finally {
    			if (resultSet != null) {
    				try {
    					resultSet.close();
    				} catch (SQLException exception) {
    				}
    			}
    			if (statement != null) {
    				try {
    					statement.close();
    				} catch (SQLException exception) {
    				}
    			}
    			if (connection != null) {
    				try {
    					connection.close();
    				} catch (SQLException exception) {
    				}
    			}
    		}
    		return allCustomers.toArray(new Customer[allCustomers.size()]);
    	}
    [.....]
    }
    
    //Page
    
    package sellManagement.ui;
    
    import javax.ejb.EJB;
    import javax.faces.application.FacesMessage;
    import javax.faces.context.FacesContext;
    import javax.faces.event.ActionEvent;
    import javax.faces.model.SelectItem;
    
    import sellManagement.data.Customer;
    import sellManagement.data.School;
    import sellManagement.ejbs.CustomerException;
    import sellManagement.ejbs.CustomerManagement;
    import sellManagement.ejbs.CustomerManagementBean;
    import sellManagement.ejbs.SchoolException;
    import sellManagement.ejbs.SchoolManagement;
    
    public class CustomerPage {
    
    	private static final String CUSTOMER_LIST_PAGE_TITLE = "Customer Management";
    	private static final String NEW_CUSTOMER_PAGE_TITLE = "Create New Customer";
    	private static final String EDIT_CUSTOMER_PAGE_TITLE = "Edit Customer";
    
    	@EJB(name = "customerManagement")
    	private CustomerManagement customerManagement;
    
    	private String pageTitle;
    	private Customer currentCustomer;
    	private boolean showingList;
    
    	private int id;
    	private String firstName;
    	private String lastName;
    	private int school;
    	private String emailAdress;
    
    	private Boolean deleteCustomer;
    	private Boolean editCustomer;
    	private Boolean newCustomer;
    
    	public Customer[] getAllCustomers() {
    		try {
    			return customerManagement.getAllCustomers();
    		} catch (CustomerException exception) {
    			addExceptionMessage(exception);
    			return new Customer[0];
    		}
    	}
    
    //Aufruf
    
    CustomerPage cp = new CustomerPage();
    cp.getAllCustomers();
    den aufruf hab ich nur als beispiel gegeben, wo es probleme gibt.
    das mit der bean, also mit dem db zugriff funktioniert. jedoch in dieser zeile
    return customerManagement.getAllCustomers();
    wird eine nullpointerexception geworfen...

    ich denke hier liegt der fehler...
    @EJB(name = "customerManagement")
    private CustomerManagement customerManagement;
    weil es nicht instantiiert wurde....
    die fehlermeldung vom server ist:


    [#|2010-01-12T16:03:01.926+0100|WARNING|glassfishv3.0|javax.e nterprise.system.container.web.com.sun.enterprise. web|_ThreadID=30;_ThreadName=http-thread-pool-8080-(2);|StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception
    java.lang.NullPointerException
    at sellManagement.ui.CustomerPage.getAllCustomers(Cus tomerPage.java:155)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at javax.el.BeanELResolver.getValue(BeanELResolver.ja va:302)
    at javax.el.CompositeELResolver.getValue(CompositeELR esolver.java:175)
    at com.sun.faces.el.FacesCompositeELResolver.getValue (FacesCompositeELResolver.java:72)
    at com.sun.el.parser.AstValue.getValue(AstValue.java: 116)
    at com.sun.el.parser.AstValue.getValue(AstValue.java: 163)
    at com.sun.el.ValueExpressionImpl.getValue(ValueExpre ssionImpl.java:219)
    at javax.faces.component.ComponentStateHelper.eval(Co mponentStateHelper.java:190)
    at javax.faces.component.ComponentStateHelper.eval(Co mponentStateHelper.java:178)
    at javax.faces.component.UIData.getValue(UIData.java: 554)
    at javax.faces.component.UIData.getDataModel(UIData.j ava:1248)
    at javax.faces.component.UIData.setRowIndex(UIData.ja va:447)
    at com.sun.faces.renderkit.html_basic.TableRenderer.e ncodeBegin(TableRenderer.java:81)
    at javax.faces.component.UIComponentBase.encodeBegin( UIComponentBase.java:823)
    at javax.faces.component.UIData.encodeBegin(UIData.ja va:937)
    at javax.faces.component.UIComponent.encodeAll(UIComp onent.java:1611)
    at javax.faces.component.UIComponent.encodeAll(UIComp onent.java:1616)
    at javax.faces.render.Renderer.encodeChildren(Rendere r.java:168)
    at javax.faces.component.UIComponentBase.encodeChildr en(UIComponentBase.java:848)
    at javax.faces.component.UIComponent.encodeAll(UIComp onent.java:1613)
    at javax.faces.component.UIComponent.encodeAll(UIComp onent.java:1616)
    at com.sun.faces.application.view.JspViewHandlingStra tegy.doRenderView(JspViewHandlingStrategy.java:420 )
    at com.sun.faces.application.view.JspViewHandlingStra tegy.renderView(JspViewHandlingStrategy.java:209)
    at com.sun.faces.application.view.MultiViewHandler.re nderView(MultiViewHandler.java:126)
    at com.sun.faces.lifecycle.RenderResponsePhase.execut e(RenderResponsePhase.java:127)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:1 01)
    at com.sun.faces.lifecycle.LifecycleImpl.render(Lifec ycleImpl.java:139)
    at javax.faces.webapp.FacesServlet.service(FacesServl et.java:313)
    at org.apache.catalina.core.StandardWrapper.service(S tandardWrapper.java:1523)
    at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:279)
    at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:188)
    at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:641)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipel ine.java:97)
    at com.sun.enterprise.web.PESessionLockingStandardPip eline.invoke(PESessionLockingStandardPipeline.java :85)
    at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:185)
    at org.apache.catalina.connector.CoyoteAdapter.doServ ice(CoyoteAdapter.java:332)
    at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:233)
    at com.sun.enterprise.v3.services.impl.ContainerMappe r.service(ContainerMapper.java:165)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(P rocessorTask.java:791)
    at com.sun.grizzly.http.ProcessorTask.doProcess(Proce ssorTask.java:693)
    at com.sun.grizzly.http.ProcessorTask.process(Process orTask.java:954)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute (DefaultProtocolFilter.java:170)
    at com.sun.grizzly.DefaultProtocolChain.executeProtoc olFilter(DefaultProtocolChain.java:135)
    at com.sun.grizzly.DefaultProtocolChain.execute(Defau ltProtocolChain.java:102)
    at com.sun.grizzly.DefaultProtocolChain.execute(Defau ltProtocolChain.java:88)
    at com.sun.grizzly.http.HttpProtocolChain.execute(Htt pProtocolChain.java:76)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(Pr otocolChainContextTask.java:53)
    at com.sun.grizzly.SelectionKeyContextTask.call(Selec tionKeyContextTask.java:57)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:6 9)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doW ork(AbstractThreadPool.java:330)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run (AbstractThreadPool.java:309)
    at java.lang.Thread.run(Thread.java:619)
    |#]
    hat jemand eine idee?
    vielen dank schonmal im voraus...

    grüße dom

  • #2
    Welchen ApplicationServer in welcher Version verwendest du ?

    CustomerPage soll vermutlich eine JSF managed Bean sein? Dein "Aufrufcode" ist da etwas verwirrend. Ich vermute mal, das CustomerPage in deiner faces-config.xml konfiguriert ist und du über ein Facelet deine Bean CustomerPage aufrufst?

    @EJB ist ja "klassisch 3.0" erst mal die Möglichkeit eine EJB in einer anderen EJB zu referenzieren. Ob das Referenzieren einer EJB mittels der @EJB-Annotation aus eine JSF managed bean klappt, bin ich mir nicht so sicher (kann vom ApplicationServer abhängen).

    Comment


    • #3
      Alternativ kannst du mal das in getAllCustomers() probieren:

      try {
      InitialContext ic = new InitialContext();
      CustomerManagement customerManagement = (CustomerManagement ) ic.lookup("java:comp/env/CustomerManagement");
      return customerManagement.getAllCustomers();
      ...

      Comment


      • #4
        ich benutze glassfish v3

        CustomerPage ist die JSF managed Bean, da hast du recht...den aufrufcode hab ich eigetnlich nur dazu reingepackt um zu zeigen, wo die exception auftritt... sorry wenns verwirrend ist...
        faces-config.xml müsste stimmen, kann sie aber im zweifel morgen nochmal posten... (bin gerade nicht an dem pc, an dem ich das entwickle)

        wie sieht denn die referenzierung einer EJB aus einer jsf managed bean eigentlich aus?

        das mit dem initialcontext probier ich morgen mal aus...

        danke für die response..

        grüße

        Comment


        • #5
          habe das jetzt mal probiert mit dem initial context... dummerweise schreibt er jetzt:


          [#|2010-01-13T11:04:50.787+0100|SEVERE|glassfishv3.0|javax.en terprise.system.std.com.sun.enterprise.v3.services .impl|_ThreadID=34;_ThreadName=Thread-1;|javax.naming.NamingException: Lookup failed for 'java:comp/env/ejbs/CustomerManagement' in SerialContext [Root exception is javax.naming.NameNotFoundException: No object bound to name java:comp/env/ejbs/CustomerManagement]
          at com.sun.enterprise.naming.impl.SerialContext.looku p(SerialContext.java:442)
          at javax.naming.InitialContext.lookup(InitialContext. java:392)
          at javax.naming.InitialContext.lookup(InitialContext. java:392)
          at sellManagement.ui.CustomerPage.getAllCustomers(Cus tomerPage.java:179)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at javax.el.BeanELResolver.getValue(BeanELResolver.ja va:302)
          at javax.el.CompositeELResolver.getValue(CompositeELR esolver.java:175)
          at com.sun.faces.el.FacesCompositeELResolver.getValue (FacesCompositeELResolver.java:72)
          at com.sun.el.parser.AstValue.getValue(AstValue.java: 116)
          at com.sun.el.parser.AstValue.getValue(AstValue.java: 163)
          at com.sun.el.ValueExpressionImpl.getValue(ValueExpre ssionImpl.java:219)
          at javax.faces.component.ComponentStateHelper.eval(Co mponentStateHelper.java:190)
          at javax.faces.component.ComponentStateHelper.eval(Co mponentStateHelper.java:178)
          at javax.faces.component.UIData.getValue(UIData.java: 554)
          at javax.faces.component.UIData.getDataModel(UIData.j ava:1248)
          at javax.faces.component.UIData.setRowIndex(UIData.ja va:447)
          at com.sun.faces.renderkit.html_basic.TableRenderer.e ncodeEnd(TableRenderer.java:191)
          at javax.faces.component.UIComponentBase.encodeEnd(UI ComponentBase.java:878)
          at javax.faces.component.UIComponent.encodeAll(UIComp onent.java:1620)
          at javax.faces.component.UIComponent.encodeAll(UIComp onent.java:1616)
          at javax.faces.render.Renderer.encodeChildren(Rendere r.java:168)
          at javax.faces.component.UIComponentBase.encodeChildr en(UIComponentBase.java:848)
          at javax.faces.component.UIComponent.encodeAll(UIComp onent.java:1613)
          at javax.faces.component.UIComponent.encodeAll(UIComp onent.java:1616)
          at com.sun.faces.application.view.JspViewHandlingStra tegy.doRenderView(JspViewHandlingStrategy.java:420 )
          at com.sun.faces.application.view.JspViewHandlingStra tegy.renderView(JspViewHandlingStrategy.java:209)
          at com.sun.faces.application.view.MultiViewHandler.re nderView(MultiViewHandler.java:126)
          at com.sun.faces.lifecycle.RenderResponsePhase.execut e(RenderResponsePhase.java:127)
          at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:1 01)
          at com.sun.faces.lifecycle.LifecycleImpl.render(Lifec ycleImpl.java:139)
          at javax.faces.webapp.FacesServlet.service(FacesServl et.java:313)
          at org.apache.catalina.core.StandardWrapper.service(S tandardWrapper.java:1523)
          at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:279)
          at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:188)
          at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:641)
          at com.sun.enterprise.web.WebPipeline.invoke(WebPipel ine.java:97)
          at com.sun.enterprise.web.PESessionLockingStandardPip eline.invoke(PESessionLockingStandardPipeline.java :85)
          at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:185)
          at org.apache.catalina.connector.CoyoteAdapter.doServ ice(CoyoteAdapter.java:332)
          at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:233)
          at com.sun.enterprise.v3.services.impl.ContainerMappe r.service(ContainerMapper.java:165)
          at com.sun.grizzly.http.ProcessorTask.invokeAdapter(P rocessorTask.java:791)
          at com.sun.grizzly.http.ProcessorTask.doProcess(Proce ssorTask.java:693)
          at com.sun.grizzly.http.ProcessorTask.process(Process orTask.java:954)
          at com.sun.grizzly.http.DefaultProtocolFilter.execute (DefaultProtocolFilter.java:170)
          at com.sun.grizzly.DefaultProtocolChain.executeProtoc olFilter(DefaultProtocolChain.java:135)
          at com.sun.grizzly.DefaultProtocolChain.execute(Defau ltProtocolChain.java:102)
          at com.sun.grizzly.DefaultProtocolChain.execute(Defau ltProtocolChain.java:88)
          at com.sun.grizzly.http.HttpProtocolChain.execute(Htt pProtocolChain.java:76)
          at com.sun.grizzly.ProtocolChainContextTask.doCall(Pr otocolChainContextTask.java:53)
          at com.sun.grizzly.SelectionKeyContextTask.call(Selec tionKeyContextTask.java:57)
          at com.sun.grizzly.ContextTask.run(ContextTask.java:6 9)
          at com.sun.grizzly.util.AbstractThreadPool$Worker.doW ork(AbstractThreadPool.java:330)
          at com.sun.grizzly.util.AbstractThreadPool$Worker.run (AbstractThreadPool.java:309)
          at java.lang.Thread.run(Thread.java:619)
          Caused by: javax.naming.NameNotFoundException: No object bound to name java:comp/env/ejbs/CustomerManagement
          at com.sun.enterprise.naming.impl.GlassfishNamingMana gerImpl.lookup(GlassfishNamingManagerImpl.java:684 )
          at com.sun.enterprise.naming.impl.GlassfishNamingMana gerImpl.lookup(GlassfishNamingManagerImpl.java:657 )
          at com.sun.enterprise.naming.impl.JavaURLContext.look up(JavaURLContext.java:148)
          at com.sun.enterprise.naming.impl.SerialContext.looku p(SerialContext.java:428)
          ... 57 more
          |#]


          ich habs jetzt so
          Code:
          InitialContext ic = new InitialContext();
          			CustomerManagement customerManagement = (CustomerManagement) ic
          					.lookup(CustomerManagement.class.getName());
          			return customerManagement.getAllCustomers();
          oder auch so
          Code:
          InitialContext ic = new InitialContext();
          CustomerManagement customerManagement = (CustomerManagement ) ic.lookup("java:comp/env/CustomerManagement");
          return customerManagement.getAllCustomers();
          kommt jeweils die gleiche exception...
          vielen dank schonmal

          Comment


          • #6
            Habe ich fast befürchtet...

            Das sieht nämlich dann jetzt eher wie ein Problem mit dem Deployment und der Paketierung deiner Komponenten aus.

            Was für Komponenten deployst du denn (ear, war, ejb-jar) ? Der Lookup über "java:comp/env/" klappt ja nur, wenn man - sehr vereinfacht gesagt - in einer Komponente ist.

            Mit Glassfish habe ich noch nicht soviel gemacht. Gibt es da eine Möglichkeit über die Console zu sehen, ob das CustomerManagement-Bean im JNDI sichtbar ist und wenn ja, unter welchen Namen? Den müsstest du dann beim lookup() genauso angeben.

            Das sind halt so die Nachteile von "Convention over Configuration"; mann muss halt dann verstehen, was der Server mit einer annotierten Bean macht, also z.B. wie jetzt der JNDI-Name lautet, unter der das Bean erreichbar ist.

            Comment


            • #7
              hey..

              also ich deploye eine jar file, für die beans und eine war file.
              leider hab ich nichts gefunden, wo ich nachschauen kann, ob die im JNDI ist...
              habs gegoogelt aber nichts gefunden...

              gibts da noch eine andere möglichkeit?

              Comment


              • #8
                Hier habe ich was zum Thema jndi und Glassfish v3 gefunden:

                http://forums.java.net/jive/thread.j...ssageID=378725

                Schau doch mal ob du mit dem asadmin-Kommando irgendwie an die Informationen kommst. Glassfish V3 ist ja schon EE6 und die neuen JNDI Naming Conventions habe ich (noch) nicht gelesen.

                Comment


                • #9
                  hey...

                  auf der seite ist ein link zu der page http://blogs.sun.com/MaheshKannan/en...bal_jndi_names
                  da hab ich das gefunden...
                  java:global/[<application-name>]/<module-name>/<bean-name>!<fully-qualified-bean-interface-name>

                  demnach müsste meine url eigentlich so sein:
                  "java:global/customerManagement/CustomerManagementBean!sellManagement.ejbs.Custome rManagement"

                  bekomm aber wieder

                  [#|2010-01-13T14:03:52.171+0100|SEVERE|glassfishv3.0|javax.en terprise.system.std.com.sun.enterprise.v3.services .impl|_ThreadID=31;_ThreadName=Thread-1;|javax.naming.NamingException: Lookup failed for 'java:global/customerManagement/CustomerManagementBean!sellManagement.ejbs.Custome rManagement' in SerialContext [Root exception is javax.naming.NameNotFoundException: CustomerManagement]
                  at com.sun.enterprise.naming.impl.SerialContext.looku p(SerialContext.java:442)
                  at javax.naming.InitialContext.lookup(InitialContext. java:392)
                  at javax.naming.InitialContext.lookup(InitialContext. java:392)
                  at sellManagement.ui.CustomerPage.getAllCustomers(Cus tomerPage.java:186)
                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
                  at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
                  at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
                  at java.lang.reflect.Method.invoke(Method.java:597)
                  at javax.el.BeanELResolver.getValue(BeanELResolver.ja va:302)
                  at javax.el.CompositeELResolver.getValue(CompositeELR esolver.java:175)
                  at com.sun.faces.el.FacesCompositeELResolver.getValue (FacesCompositeELResolver.java:72)
                  at com.sun.el.parser.AstValue.getValue(AstValue.java: 116)
                  at com.sun.el.parser.AstValue.getValue(AstValue.java: 163)
                  at com.sun.el.ValueExpressionImpl.getValue(ValueExpre ssionImpl.java:219)
                  at javax.faces.component.ComponentStateHelper.eval(Co mponentStateHelper.java:190)
                  at javax.faces.component.ComponentStateHelper.eval(Co mponentStateHelper.java:178)
                  at javax.faces.component.UIData.getValue(UIData.java: 554)
                  at javax.faces.component.UIData.getDataModel(UIData.j ava:1248)
                  at javax.faces.component.UIData.setRowIndex(UIData.ja va:447)
                  at com.sun.faces.renderkit.html_basic.TableRenderer.e ncodeEnd(TableRenderer.java:191)
                  at javax.faces.component.UIComponentBase.encodeEnd(UI ComponentBase.java:878)
                  at javax.faces.component.UIComponent.encodeAll(UIComp onent.java:1620)
                  at javax.faces.component.UIComponent.encodeAll(UIComp onent.java:1616)
                  at javax.faces.render.Renderer.encodeChildren(Rendere r.java:168)
                  at javax.faces.component.UIComponentBase.encodeChildr en(UIComponentBase.java:848)
                  at javax.faces.component.UIComponent.encodeAll(UIComp onent.java:1613)
                  at javax.faces.component.UIComponent.encodeAll(UIComp onent.java:1616)
                  at com.sun.faces.application.view.JspViewHandlingStra tegy.doRenderView(JspViewHandlingStrategy.java:420 )
                  at com.sun.faces.application.view.JspViewHandlingStra tegy.renderView(JspViewHandlingStrategy.java:209)
                  at com.sun.faces.application.view.MultiViewHandler.re nderView(MultiViewHandler.java:126)
                  at com.sun.faces.lifecycle.RenderResponsePhase.execut e(RenderResponsePhase.java:127)
                  at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:1 01)
                  at com.sun.faces.lifecycle.LifecycleImpl.render(Lifec ycleImpl.java:139)
                  at javax.faces.webapp.FacesServlet.service(FacesServl et.java:313)
                  at org.apache.catalina.core.StandardWrapper.service(S tandardWrapper.java:1523)
                  at org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:279)
                  at org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:188)
                  at org.apache.catalina.core.StandardPipeline.invoke(S tandardPipeline.java:641)
                  at com.sun.enterprise.web.WebPipeline.invoke(WebPipel ine.java:97)
                  at com.sun.enterprise.web.PESessionLockingStandardPip eline.invoke(PESessionLockingStandardPipeline.java :85)
                  at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:185)
                  at org.apache.catalina.connector.CoyoteAdapter.doServ ice(CoyoteAdapter.java:332)
                  at org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:233)
                  at com.sun.enterprise.v3.services.impl.ContainerMappe r.service(ContainerMapper.java:165)
                  at com.sun.grizzly.http.ProcessorTask.invokeAdapter(P rocessorTask.java:791)
                  at com.sun.grizzly.http.ProcessorTask.doProcess(Proce ssorTask.java:693)
                  at com.sun.grizzly.http.ProcessorTask.process(Process orTask.java:954)
                  at com.sun.grizzly.http.DefaultProtocolFilter.execute (DefaultProtocolFilter.java:170)
                  at com.sun.grizzly.DefaultProtocolChain.executeProtoc olFilter(DefaultProtocolChain.java:135)
                  at com.sun.grizzly.DefaultProtocolChain.execute(Defau ltProtocolChain.java:102)
                  at com.sun.grizzly.DefaultProtocolChain.execute(Defau ltProtocolChain.java:88)
                  at com.sun.grizzly.http.HttpProtocolChain.execute(Htt pProtocolChain.java:76)
                  at com.sun.grizzly.ProtocolChainContextTask.doCall(Pr otocolChainContextTask.java:53)
                  at com.sun.grizzly.SelectionKeyContextTask.call(Selec tionKeyContextTask.java:57)
                  at com.sun.grizzly.ContextTask.run(ContextTask.java:6 9)
                  at com.sun.grizzly.util.AbstractThreadPool$Worker.doW ork(AbstractThreadPool.java:330)
                  at com.sun.grizzly.util.AbstractThreadPool$Worker.run (AbstractThreadPool.java:309)
                  at java.lang.Thread.run(Thread.java:619)
                  Caused by: javax.naming.NameNotFoundException: customerManagement
                  at com.sun.enterprise.naming.impl.TransientContext.re solveContext(TransientContext.java:252)
                  at com.sun.enterprise.naming.impl.TransientContext.lo okup(TransientContext.java:171)
                  at com.sun.enterprise.naming.impl.TransientContext.lo okup(TransientContext.java:172)
                  at com.sun.enterprise.naming.impl.SerialContextProvid erImpl.lookup(SerialContextProviderImpl.java:58)
                  at com.sun.enterprise.naming.impl.LocalSerialContextP roviderImpl.lookup(LocalSerialContextProviderImpl. java:101)
                  at com.sun.enterprise.naming.impl.SerialContext.looku p(SerialContext.java:430)
                  ... 57 more
                  |#]

                  Comment


                  • #10
                    Deswegen wäre es wichtig herauszubekommen a) ob dein customerManagement-Bean im JNDI vorhanden ist und b) unter welchem Namen.

                    Hast du mit dem asadmin-Kommando etwas herausbekommen ?

                    Comment


                    • #11
                      schon, aber ich kann es irgendwie nicht richtig deuten:

                      asadmin> list-jndi-entries
                      sellManagement.ejbs.SchoolManagement#sellManagemen t.ejbs.SchoolManagement: javax
                      .naming.Reference
                      sellManagement.ejbs.OrderManagement: javax.naming.Reference
                      sellManagement.ejbs.OrderManagement#sellManagement .ejbs.OrderManagement: javax.n
                      aming.Reference
                      sellManagement.ejbs.CustomerManagement__3_x_Intern al_RemoteBusinessHome__: javax
                      .naming.Reference
                      sellManagement.ejbs.CustomerManagement: javax.naming.Reference
                      java:global: com.sun.enterprise.naming.impl.TransientContext
                      com.sun.enterprise.container.common.spi.util.Injec tionManager: com.sun.enterpris
                      e.container.common.impl.util.InjectionManagerImpl
                      sellManagement.ejbs.SchoolManagement: javax.naming.Reference
                      sellManagement.ejbs.CustomerManagement#sellManagem ent.ejbs.CustomerManagement: j
                      avax.naming.Reference
                      jdbc: com.sun.enterprise.naming.impl.TransientContext
                      UserTransaction: com.sun.enterprise.transaction.TransactionNamingPr oxy$UserTrans
                      actionProxy
                      ejb: com.sun.enterprise.naming.impl.TransientContext
                      sellManagement.ejbs.OrderManagement__3_x_Internal_ RemoteBusinessHome__: javax.na
                      ming.Reference
                      sellManagement.ejbs.SchoolManagement__3_x_Internal _RemoteBusinessHome__: javax.n
                      aming.Reference
                      Command list-jndi-entries executed successfully.

                      was bedeutet das für meine url?

                      edit
                      btw. tausend mal danke für deine hilfe^^

                      Comment


                      • #12
                        JNDI ist wie ein Baum aufgebaut. Die Blätter sind die "javax-naming.Reference"-Einträge; Knoten sind "com.sun.enterprise.nameing.impl.transientContext" . Das bedeutet z.B. das es einen Knoten mit Namen "ejb" gibt der noch Unterelemente enthalten kann ("list-jndi-entries --context ejb").

                        Versuch doch mal den Eintrag "sellManagement.ejbs.CustomerManagement" in deinem Code für den lookup; denn müsste er ja finden, da im JNDI vorhanden. Mal sehen, wo es dann knallt...

                        Comment


                        • #13
                          [#|2010-01-13T14:56:19.175+0100|SEVERE|glassfishv3.0|javax.en terprise.system.std.com.sun.enterprise.v3.services .impl|_ThreadID=31;_ThreadName=Thread-1;|javax.naming.NamingException: Lookup failed for 'java:sellManagement.ejbs.CustomerManagement' in SerialContext [Root exception is javax.naming.NameNotFoundException: No object bound to name java:sellManagement.ejbs.CustomerManagement]
                          at com.sun.enterprise.naming.impl.SerialContext.looku p(SerialContext.java:442)......[]
                          Caused by: javax.naming.NameNotFoundException: No object bound to name java:sellManagement.ejbs.CustomerManagement

                          ich hab jetzt aber wirklich nur
                          ic.lookup("java:sellManagement.ejbs.CustomerManage ment");
                          eingeneben... knallt immernoch...
                          wie macht man das denn normalerweise? oder ist das der normale weg?

                          Comment


                          • #14
                            Nimm mal nur ic.lookup("sellManagement.ejbs.CustomerManagement" ) ohne das "java:" davor.

                            Comment


                            • #15
                              der sagt mir dann einfach die ganze zeit
                              [#|2010-01-13T15:16:51.497+0100|SEVERE|glassfishv3.0|javax.en terprise.system.std.com.sun.enterprise.v3.services .impl|_ThreadID=32;_ThreadName=Thread-1;|Unable to load drivers|#]

                              Comment

                              Working...
                              X