ClassCastException

Status
Nicht offen für weitere Antworten.

mayer

Aktives Mitglied
Ich habe eine Klasse BesamungAnstaltList die die Klasse EbFacade, genauer die Methode getWhereEbBesamer aufruft:

EbFacade:


Code:
public ArrayList getWhereEbBesamer(Long lfbis) 
   {
	ArrayList bsaList;
	    
	try 
	{
	  Context context = getInitialContext();
	  PBesamungsanstaltHome pBesamungsanstaltHome = (PBesamungsanstaltHome)PortableRemoteObject.narrow(context.lookup("PBesamungsanstalt"), PBesamungsanstaltHome.class);
	  PBesamungsanstalt pBesamungsanstalt;
	      
	  Collection coll = pBesamungsanstaltHome.findWhereEbBesamer(lfbis);
	  Iterator list = coll.iterator();
	  bsaList = new ArrayList(coll.size());
	    
	  while(list.hasNext()) 
	  { 
	   pBesamungsanstalt = (PBesamungsanstalt) list.next();
//	   value: BesNr;RdvNr
//	   bsaList.add(new SelectItem(new String(this.getBesamerNrFor(lfbis,pBesamungsanstalt.getRdvNr()))+";"+pBesamungsanstalt.getRdvNr(), new String(pBesamungsanstalt.getBezeichnung()+" ("+pBesamungsanstalt.getRdvNr()+")"+" - "+this.getBesamerNrFor(lfbis,pBesamungsanstalt.getRdvNr())) ));
	   bsaList.add( new SelectItem( new String(pBesamungsanstalt.getBesNummer()+";"+pBesamungsanstalt.getBaRdvNr()) , new String(pBesamungsanstalt.getBezeichnung()+" ("+pBesamungsanstalt.getBaRdvNr()+")"+" - "+pBesamungsanstalt.getBesNummer()) ) );
	  }
	}
	    
	catch(Exception e) 
	{
	  System.out.println("Fehler in EBFACADE: getWhereEbBesamer");
	  e.printStackTrace();
	  return null;
	}
	   
	return bsaList;
  }


Klasse BesamungAnstaltListBean:


Code:
public class BesamungAnstaltListBean 
{
  private ArrayList bsaList = null; //Enthält als Label: die Bezeichnung(rdvNr) - besNummer z.B.: "Besamungsstation Birkenberg(A5) - 3953"
                                    //            Value: die Besamernummer  ; die RdvNr               
                                    //            Beschreibung: 
  public BesamungAnstaltListBean()
  {
   // System.out.println("Aufruf BesamungAnstaltListBean");
    EbFacade f = new EbFacade();
    Long lfbis = null;
//  Value-Binding erzeugen
    FacesContext context = FacesContext.getCurrentInstance();
    ApplicationFactory apf = (ApplicationFactory) FactoryFinder.getFactory(FactoryFinder.APPLICATION_FACTORY);
    Application appl = apf.getApplication();
    
//  Lesen der Betriebsnummer   
    ValueBinding binding = appl.createValueBinding("#{betrieb.lfbis}");
    lfbis = new Long((String) binding.getValue(context));
    System.out.println("-----------------------------------------");
    System.out.println(lfbis);
//  Auslesen wo Betrieb Eigenbestandbesamer ist
    bsaList = new ArrayList(f.getWhereEbBesamer(lfbis));
    System.out.println(bsaList.size());
    System.out.println("-----------------------------------------");
    
//  Default-Werte setzen 
    try {
    binding = null;
    binding = appl.createValueBinding("#{tierBesamung.lfbis}");
    binding.setValue(context, lfbis.toString() );
    
    System.out.println("1------------------------------------1");
    System.out.println("*");
    System.out.println( ((javax.faces.model.SelectItem) (bsaList.get(0))) );     // hier steigt er aus
    Vector vec = getRdvNrBesNr((String) ((SelectItem) bsaList.get(0)).getValue()); // hier steigt er aus
    System.out.println("2------------------------------------2");
    String besNr = (String) vec.get(0);
    String rdvNr = (String) vec.get(1);
    System.out.println(besNr+rdvNr);
    binding = null;
    binding = appl.createValueBinding("#{tierBesamung.besNummer}");
    binding.setValue(context, besNr);
    
    binding = null;
    binding = appl.createValueBinding("#{tierBesamung.baRdvNr}");
    binding.setValue(context, rdvNr);
    System.out.println(besNr+" "+rdvNr);
    } catch(Exception e) {e.printStackTrace();}
    
  }
 
// BesNr;RdvNr 
  private Vector getRdvNrBesNr(String value)
  {
  	System.out.println("Drin");
    Vector vec = new Vector();
    
    vec.add(value.substring(0,value.indexOf(";"))); // BesNr
    vec.add(value.substring(value.indexOf(";")+1,value.length())); //RdvNr
    
    return vec;
  }
}


Er meldet mir dabei folgenden Fehler:

------------------------------------------------------------------------------
2005-08-12 09:53:08,953 INFO [STDOUT] java.lang.ClassCastException
2005-08-12 09:53:08,953 INFO [STDOUT] at at.plandata.rdv4m.jsf.bean.betrieb.BesamungAnstaltListBean.<init>(BesamungAnstaltListBean.java:60)
2005-08-12 09:53:08,953 INFO [STDOUT] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
2005-08-12 09:53:08,953 INFO [STDOUT] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
2005-08-12 09:53:08,953 INFO [STDOUT] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
2005-08-12 09:53:08,953 INFO [STDOUT] at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
2005-08-12 09:53:08,953 INFO [STDOUT] at java.lang.Class.newInstance0(Class.java:308)
2005-08-12 09:53:08,953 INFO [STDOUT] at java.lang.Class.newInstance(Class.java:261)
2005-08-12 09:53:08,953 INFO [STDOUT] at java.beans.Beans.instantiate(Beans.java:204)
2005-08-12 09:53:08,953 INFO [STDOUT] at java.beans.Beans.instantiate(Beans.java:48)
2005-08-12 09:53:08,953 INFO [STDOUT] at com.sun.faces.config.ManagedBeanFactory.newInstance(ManagedBeanFactory.java:203)
2005-08-12 09:53:08,953 INFO [STDOUT] at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:256)
2005-08-12 09:53:08,953 INFO [STDOUT] at com.sun.faces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:78)
2005-08-12 09:53:08,953 INFO [STDOUT] at com.sun.faces.el.impl.NamedValue.evaluate(NamedValue.java:125)
2005-08-12 09:53:08,953 INFO [STDOUT] at com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:146)
2005-08-12 09:53:08,953 INFO [STDOUT] at com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:243)
2005-08-12 09:53:08,953 INFO [STDOUT] at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:173)
2005-08-12 09:53:08,953 INFO [STDOUT] at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:154)
2005-08-12 09:53:08,953 INFO [STDOUT] at javax.faces.component.UISelectItems.getValue(UISelectItems.java:110)
2005-08-12 09:53:08,953 INFO [STDOUT] at com.sun.faces.util.Util.getSelectItems(Util.java:600)
2005-08-12 09:53:08,953 INFO [STDOUT] at com.sun.faces.renderkit.html_basic.MenuRenderer.getOptionNumber(MenuRenderer.java:488)
2005-08-12 09:53:08,953 INFO [STDOUT] at com.sun.faces.renderkit.html_basic.MenuRenderer.renderSelect(MenuRenderer.java:465)
2005-08-12 09:53:08,953 INFO [STDOUT] at com.sun.faces.renderkit.html_basic.MenuRenderer.encodeEnd(MenuRenderer.java:430)
2005-08-12 09:53:08,953 INFO [STDOUT] at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:720)
2005-08-12 09:53:08,953 INFO [STDOUT] at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:443)
2005-08-12 09:53:08,953 INFO [STDOUT] at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:233)
2005-08-12 09:53:08,953 INFO [STDOUT] at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:701)
2005-08-12 09:53:08,953 INFO [STDOUT] at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:435)
2005-08-12 09:53:08,953 INFO [STDOUT] at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:233)
2005-08-12 09:53:08,953 INFO [STDOUT] at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:701)
2005-08-12 09:53:08,953 INFO [STDOUT] at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:435)
2005-08-12 09:53:08,953 INFO [STDOUT] at com.sun.faces.renderkit.html_basic.GridRenderer.encodeChildren(GridRenderer.java:233)
2005-08-12 09:53:08,953 INFO [STDOUT] at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:701)
2005-08-12 09:53:08,953 INFO [STDOUT] at javax.faces.webapp.UIComponentTag.encodeChildren(UIComponentTag.java:607)
2005-08-12 09:53:08,968 INFO [STDOUT] at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:544)
2005-08-12 09:53:08,968 INFO [STDOUT] at com.sun.faces.taglib.html_basic.PanelGridTag.doEndTag(PanelGridTag.java:460)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.jsp.Betrieb.Erf_005fEb_005fBesamung_jsp._jspx_meth_h_panelGrid_0(org.apache.jsp.Betrieb.Erf_005fEb_005fBesamung_jsp:281)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.jsp.Betrieb.Erf_005fEb_005fBesamung_jsp._jspx_meth_h_form_0(org.apache.jsp.Betrieb.Erf_005fEb_005fBesamung_jsp:243)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.jsp.Betrieb.Erf_005fEb_005fBesamung_jsp._jspx_meth_f_view_0(org.apache.jsp.Betrieb.Erf_005fEb_005fBesamung_jsp:190)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.jsp.Betrieb.Erf_005fEb_005fBesamung_jsp._jspService(org.apache.jsp.Betrieb.Erf_005fEb_005fBesamung_jsp:151)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
2005-08-12 09:53:08,968 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
2005-08-12 09:53:08,968 INFO [STDOUT] at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
2005-08-12 09:53:08,968 INFO [STDOUT] at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
2005-08-12 09:53:08,968 INFO [STDOUT] at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
2005-08-12 09:53:08,968 INFO [STDOUT] at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
2005-08-12 09:53:08,968 INFO [STDOUT] at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
2005-08-12 09:53:08,968 INFO [STDOUT] at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
2005-08-12 09:53:08,968 INFO [STDOUT] at javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
2005-08-12 09:53:08,968 INFO [STDOUT] at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
2005-08-12 09:53:08,968 INFO [STDOUT] at java.lang.Thread.run(Thread.java:534)
-----------------------------------------------------------------------------------------------------------------------------------

Kann mir jemand helfen ??

mfg manuel
 
B

Beni

Gast
Eine ClassCastException tritt immer dann auf, wenn du was casten willst, was nicht geht. Als Beispiel:
Code:
Object unbekannt = new JFrame();
String blabla = (String)unbekannt; // <- ein JFrame ist kein String, ClassCastException

Du sagst der Fehler tritt hier auf:
Code:
System.out.println( ((javax.faces.model.SelectItem) (bsaList.get(0))) );
Einfache Antwort: in der "bsaList" sind keine "SelectItem" drin.
Um rauszufinden was wirklich drin ist, guck dir an, was
Code:
System.out.println(bsaList.get(0).getClass().getName());
ausgiebt.

[Edit, hm, dev2 verträgt sich nicht mit dem alten Forum :-/ ]
 

mayer

Aktives Mitglied
Ich habe deinen Vorschlag ausporbiert und er gibt mir folgendes aus : javax.faces.model.SelectItem

Die bsaList wird ja durch die methode getWhereEbBesamer mit den SelectItems gefüllt.

Andere Vorschläge ??


mfg manuel
 
B

Beni

Gast
Was ist mit der anderen Zeile die du markiert hast?
Code:
    Vector vec = getRdvNrBesNr((String) ((SelectItem) bsaList.get(0)).getValue()); // hier steigt er aus

Ist das dasselbe SelectItem wie zuvor (mehrere Klassen können denselben Namen haben... und einmal hast du das Package geschrieben, einmal nicht).
Und: liefert "getValue" wirklich ein String zurück?

Ansonsten könnte ich höchstens noch fragen, ob du die richtigen Zeilen markiert hast?
 

Bleiglanz

Gesperrter Benutzer
hast du jetzt zwei fehler oder einen?
Code:
    System.out.println( ((javax.faces.model.SelectItem) (bsaList.get(0))) );     // hier steigt er aus

nur wenn bsaList.get(0) NICHT zu javax.faces.model.SelectItem gecastet werde kann



    Vector vec = getRdvNrBesNr((String) ((SelectItem) bsaList.get(0)).getValue()); // hier steigt er aus

mehere Möglichkeiten:

getRdvNrBesNr -> liefert das einen Vector?
(SelectItem) bsaList.get(0) -> wie oben, geht das?
getValue() -> liefert das wirklich einen String?
 

mayer

Aktives Mitglied
Das getValue liefert ein Object zurück, jedoch habe ich in der Klasse EbFacde Strings als Value hinzugefügt. Die Packagebezeichnungen passen auch.

Ich habe auch folgendes probiert:

Code:
System.out.println( ((SelectItem) bsaList.get(0)));

Dabei meldet er keinen Fehler. Nur wenn ich getValue() sage.

An Bleiglanz: Verständlicherweise steigt er schon bei System.out.println() aus.


mfg manuel ???
 
C

chilli

Gast
Schau mal mit

System.out.println( ((SelectItem) bsaList.get(0).getClass()));

was er Dir da überhaupt anbietet...
 
C

chilli

Gast
Bzw lass den cast weg:


System.out.println( (bsaList.get(0).getClass()) );
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F ClassCastException Fehler bei Bounds Java Basics - Anfänger-Themen 3
P java.lang.ClassCastException Bedeutung und Lösung Java Basics - Anfänger-Themen 3
J Kann ClassCastException nicht nachvollziehen Java Basics - Anfänger-Themen 5
S ClassCastException bei generischer Klasse Java Basics - Anfänger-Themen 5
C Hilfe!!! java.lang.ClassCastException Java Basics - Anfänger-Themen 1
F Probleme mit ClassCastException Java Basics - Anfänger-Themen 4
P java.lang.ClassCastException Java Basics - Anfänger-Themen 2
E Klassen ClassCastException bei gleichnamigem: paket.klasse cannot be cast to paket.klasse Java Basics - Anfänger-Themen 10
F ClassCastException (Generisches Array) Java Basics - Anfänger-Themen 10
G ClassCastException.bitte helft mir Java Basics - Anfänger-Themen 3
G db daten auslesen, problem mit ClassCastException Java Basics - Anfänger-Themen 8
T ClassCastException Java Basics - Anfänger-Themen 12
N ClassCastException bei Arraylist.get Java Basics - Anfänger-Themen 5
M Fehlermeldung : ClassCastException:null Java Basics - Anfänger-Themen 14
M java.lang.ClassCastException Java Basics - Anfänger-Themen 9
D java.lang.ClassCastException - Woran kann es liegen? Java Basics - Anfänger-Themen 6
C ClassCastException natürliche Zahlen ->Reelle Zahlen Java Basics - Anfänger-Themen 5
F ClassCastException Java Basics - Anfänger-Themen 4
F ClassCastException Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben