2011-11-28 10 views
6

मैं विरासत कोड संशोधित कर रहा हूं और एक अजीब "प्रतीक नहीं ढूंढ सकता" त्रुटि प्राप्त कर रहा हूं जो मुझे फेंक रहा है।इस जावा को "प्रतीक नहीं मिला" त्रुटि क्या हो रही है?

//======= Error ========= 

Compiling 1 source file to /Users/Inprimus/Projects/Workspace/Soft/build/web/WEB-INF/classes 
/Users/Inprimus/Projects/Workspace/Soft/WebContent/WEB-INF/classes/fr/service/CarPeer.java:49: cannot find symbol 
symbol : method addCarToCompany(java.lang.Long,fr.model.company.Car) 
location: class fr.dao.CompanyDAO 
cmpDAO.addCarToCompany(idCompany,car); 
^ 
1 error 

कार सहकर्मी:

package fr.service;  
import fr.model.company.Car; 
import fr.dao.CompanyDAO; 
import fr.dao.CarDao; 

public class CarPeer { 
    private static CarDao carDAO= new CarDao(); 
    private static CompanyDAO cmpDAO = new CompanyDAO(); 

    public static void storeCar(Long idCompany, Car car) throws UserServiceException, Exception { 
     try { 
      cmpDAO.addCarToCompany(idCompany,car); 
      System.out.println("Car stored : "+car.toString()+" in "+idCompany); 
      carDAO.storeCar(car); 
     } catch(DAOException ex) { 
      throw new UserServiceException(ex.getMessage(), ex); 
     } 
    } 
} 

CompanyDao:

package fr.dao; 
    import fr.model.accounting.Cost; 
    import fr.model.company.Car; 

    public class CompanyDAO extends GenericDAO<Company> { 

    private enum ChildType { 
    COST{ 
    public void addChildToCompany(Company company, Object child) { 
    company.addCost((Cost)child); 
    } 
    }, 
    CAR{ 
    public void addChildToCompany(Company company, Object child) { 
    company.addCar((Car)child); 
    } 
    }; 
    public abstract void addChildToCompany(Company company, Object child); 
    } 
private void addChildToCompany(Long idCompany, Object child, ChildType type) throws NotFoundDAOException, AlreadyExistDAOException, Exception { 
     try { 
      // Begin unit of work 
      Session session = HibernateUtil.getSessionFactory().getCurrentSession(); 
      session.beginTransaction(); 

      Company company = (Company) session.load(Company.class, idCompany); 

      type.addChildToCompany(company, child); 
      session.flush(); 

      // End unit of work 
      session.getTransaction().commit(); 

     } catch (ObjectNotFoundException ex) { 
      HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().rollback(); 
      throw new NotFoundDAOException("Identified object " + idCompany 
        + " doesn't exist in database", ex); 
     } catch (ConstraintViolationException ex) { 
      HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().rollback(); 
      throw new AlreadyExistDAOException("The new identity already exsits in database", ex); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
      HibernateUtil.getSessionFactory().getCurrentSession().getTransaction().rollback(); 
      throw new Exception(ex); 
     } 
    } 
    public CompanyDAO() { 
    super(Company.class); 
    } 
    public void addCarToCompany(Long idCompany, Car car) throws NotFoundDAOException, AlreadyExistDAOException, Exception { 
    addChildToCompany(idCompany, car, ChildType.CAR); 
    } 
    } 

मैं ट्रिपल जाँच कर ली है लेकिन कुछ भी कोड इस प्रकार अब तक के साथ गलत नहीं मिल रहा। मैं इसे नेटबीन्स 7.0.1 में बना रहा हूं। मुझे यह उल्लेख करना चाहिए कि जब मैं बिल्ड करता हूं तो मुझे यह त्रुटि मिलती है, लेकिन मैं वेब ऐप को बिना किसी समस्या के (अभी तक) चला सकता हूं। लेकिन मुझे चिंता है कि यह पीछे की ओर काटने के लिए वापस आ सकता है।


मैं सिर्फ फ़ाइल पेड़ कि CompanyDAO वर्गों ऊपर प्रारूप असर इसी नाम फ़ाइलों कर रहे हैं में देखा: CompanyDAO $ ChildType # .class (# एक नंबर से मेल खाती है) मैं इसे फिर से नहीं किया गया है अनुमान लगा रहा हूँ मैंने जोड़ा अतिरिक्त बच्चा प्रकार उत्पन्न करने के लिए कक्षा संकलित की। मैं इसे कैसे प्रभावित कर सकता हूं?

+0

परियोजना को साफ करने/पूर्ण पुनर्निर्माण करने का प्रयास किया? – solendil

+1

क्या आपने क्लीन बिल्ड का प्रयास किया था? क्या आपके पास क्लासपाथ में एक जार या दूसरा फ़ोल्डर है जिसमें कंपनी डीडीओ कक्षाओं की प्रति भी हो सकती है? – gkamal

उत्तर

2

CompanyDao CarPeer से पहले classpath पर संकलित और उपलब्ध जा रहा है?

+1

का उपयोग कर सकता हूं, मुझे यकीन नहीं है कि –

+0

@ DarkStar1 अपने बिल्ड पथ या स्रोत पथ के आदेश पर नज़र डालें या जो भी नेटबीन इसे कॉल करता है। – Mark

+0

मुझे ग्रहण में प्रोजेक्ट खोलना पड़ा और समस्या को हल करने के लिए बिल्ड टूल का उपयोग किया गया। यह सब कुछ ठीक से संकलित किया। –

6

सबसे अधिक संभावना है कि आप अपने classpath में एक पहले से संकलित वर्ग फ़ाइल (जो विधि नहीं था) का उपयोग कर रहे हैं और प्रणाली है कि उपयोग करने के लिए अपने वर्तमान स्रोत कोड के स्थान पर कोशिश कर रहा है।

अन्यथा, अपने कार्यक्षेत्र को साफ मौजूदा संकलन पर निर्भर करते हैं और फिर से कोशिश नहीं करते। यह अतीत में मेरे साथ हुआ है।

+0

मैं वर्कस्पेस को साफ करने की कोशिश करूंगा और आप शायद सही हो। लेकिन मैंने इस कक्षा को जमीन से खुद को कोड किया। पूरा पैकेज (और वेबएप एक क्लोन है) –

+0

जब तक वर्कस्पेस को साफ करने का कोई तरीका न हो, तब भी मैं नहीं देख सकता कि परियोजना गुणों में निर्भरता को हटाने के लिए –

+0

नहीं है। ऐसा लगता है कि मैं इस त्रुटि से छुटकारा पाने में सक्षम नहीं हूं। इसके बजाए ग्रहण करने का प्रयास करें और देखें कि क्या मैं ईमानदार होने के लिए –

1

स्वच्छ और अपनी परियोजना का निर्माण। अगर यह काम नहीं करता है, तो नेटबीन्स को पुनरारंभ करें। कभी-कभी नेटबीन्स अजीब त्रुटियां देता है और नेटबीन्स और/या कंप्यूटर का पूर्ण पुनरारंभ करने के लिए बस इन अस्पष्ट मुद्दों को ठीक करना प्रतीत होता है।

4

मैं एक ही समस्या हो रही है (हालांकि मैं चाहे वह एक ही कारण के लिए है पता नहीं है) रहते हैं। मेरे लिए, काम करने वाली एकमात्र चीज (इस "मजबूत" आईडीई को मिटाने के अलावा) कैश को हटाना है। विंडोज़ पर, यह %UserProfile%\.netbeans\7.0\var\cache में स्थित है। मुझे लगता है * निक्स पर, यह ~/.netbeans/7.0/var/cache के तहत हो सकता है। आपको पहले NetBeans से बाहर निकलना होगा, कैश हटाएं, फिर नेटबीन को फिर से शुरू करें।

+0

नेटबीन्स 8.0.2 में कैश एक ही स्थान पर प्रकट नहीं होता है। मुझे% UserProfile% \ AppData \ स्थानीय \ NetBeans \ Cache में कैश मिला था शायद यह वही है। – m3z

1

Netbeans का उपयोग करते समय निम्न कार्य 7.2 +:

  • सभी टैब बंद करें और बाहर निकलने Netbeans;
  • निकालें कैश निर्देशिका: ~/.cache/NetBeans/संस्करण। कहाँ संस्करण Netbeans संस्करण, यानी 7.3.1
  • पुनः प्रारंभ Netbeans और "स्वच्छ & बिल्ड"

है यह भी देखें How to clear the Cache in NetBeans

0

यह समस्या हो सकता है क्योंकि वर्तमान NetBeans उदाहरण है कि आप चल रहे हैं है इसके शुरुआतीकरण के दौरान पहले निर्माण कैश का उपयोग करना। तो, नेटबीन कैश को साफ़ करने के लिए आप नीचे उल्लिखित इन दो चरणों में से कोई भी प्रदर्शन कर सकते हैं।

दृष्टिकोण 1
1. सही परियोजनाओं टैब में NetBeans में अपनी परियोजना के नाम पर क्लिक करें।
2. पर क्लिक करें और विकल्प बनाएं।
3. कैश साफ़ कर दिया गया है।

दृष्टिकोण 2
1. क्लिक करें "खिड़कियों कुंजी + आर" और प्रकार "% UserProfile%/AppData/स्थानीय/NetBeans"।
2. कैश फ़ोल्डर पर नेविगेट करें और उसके बाद netbeans संस्करण निर्दिष्ट नाम वाले फ़ोल्डर में।
3. नेटबीन बंद करें और फ़ोल्डर में मौजूद सभी फाइलों को हटाएं।
4. नेटबीन को पुनरारंभ करें और अब आप कक्षा का नाम देख पाएंगे।

यदि इनमें से कोई भी तरीका काम नहीं करता है तो यह हो सकता है कि आपका क्लासपाथ सही न हो।

संबंधित मुद्दे