Hi Matt, sorry for the late reply.
Yes, I did run mvn clean compile integration-test all in one swoop. But I
still got the same error.
On 6/7/07, Matt Raible <[EMAIL PROTECTED]> wrote:
Did you run "mvn clean" after making the change?
On 6/5/07, fadhli <[EMAIL PROTECTED]> wrote:
> Hi all, I'm using Appfuse2.0-m5 with Spring MVC Basic.
>
> I recently exported the Appfuse core classes into my own project. I
followed
> the instructions to include the following exclusions of the dependency
in my
> project's pom.xml.
>
> <dependency>
> <groupId>org.appfuse</groupId>
> <artifactId>appfuse-${web.framework}</artifactId>
> <version>${appfuse.version}</version>
> <type>warpath</type>
> <!-- This exclusion and the dependency following this one
allow
> DAO framework switching. -->
> <!-- You only need these if you want to use JPA or iBATIS.
See
> APF-565 for more information. -->
> <!-- It does no harm to leave it in for Hibernate, but it's
not
> needed. -->
> <exclusions>
> <exclusion>
> <groupId>org.appfuse </groupId>
>
> <artifactId>appfuse-data-common</artifactId>
> </exclusion>
> <exclusion>
> <groupId>org.appfuse </groupId>
>
> <artifactId>appfuse-hibernate</artifactId>
> </exclusion>
> </exclusions>
> </dependency>
>
> In my project, the User class has a bidirectional OneToMany relationship
> with Contact class.
>
> So I did my unit test ContatDaoTest and tried to test it mvn
test-compile
> test -Dtest=ContactDaoTest and it fails for this one method and got the
> following error:
>
> testAddAndRemoveContact(com.jungoot.contact.dao.ContactDaoTest
> ) Time elapsed: 0.015 sec <<< ERROR!
> java.lang.NoSuchMethodError:
> org.appfuse.model.User.addContact(Lcom/jungoot/contact/model/Contact;)V
> at
> com.jungoot.contact.dao.ContactDaoTest.testAddAndRemoveContact
> (ContactDaoTest.java:77)
> at
> com.jungoot.contact.dao.ContactDaoTest.testAddAndRemoveContact(
ContactDaoTest.java:77)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at junit.framework.TestCase.runTest (TestCase.java:164)
> at junit.framework.TestCase.runBare(TestCase.java:130)
> at
> org.springframework.test.ConditionalTestCase.runBare(
ConditionalTestCase.java:69)
> at junit.framework.TestResult$1.protect(
> TestResult.java:106)
> at
> junit.framework.TestResult.runProtected(TestResult.java:124)
> at junit.framework.TestResult.run(TestResult.java:109)
> at junit.framework.TestCase.run(TestCase.java:120)
> at
> junit.framework.TestSuite.runTest(TestSuite.java:230)
> at junit.framework.TestSuite.run(TestSuite.java:225)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.maven.surefire.junit.JUnitTestSet.execute
> (JUnitTestSet.java:213)
> at
>
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(
AbstractDirectoryTestSuite.java:138)
> at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute
> (AbstractDirectoryTestSuite.java:125)
> at
> org.apache.maven.surefire.Surefire.run(Surefire.java:132)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
> Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at
> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess
> (SurefireBooter.java:290)
> at
> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java
:818)
>
> This is the method in my ContactDaoTest class
>
> public void testAddAndRemoveContact() throws Exception {
> User user = new User();
> user = userDao.get(new Long(1));
> Contact contact = new Contact();
> contact.setContactId(new Long(1));
> contact.setFirstName("Fadhli");
> contact.setLastName("Rahim");
> contact.setEmail("[EMAIL PROTECTED]");
> Address address = new Address();
> address.setCity ("Denver");
> address.setProvince("CO");
> address.setCountry("USA");
> address.setPostalCode("80210");
> contact.setContactAddress(address);
> contactDao.saveContact(contact);
> user.addContact(contact);
> user = userDao.saveUser(user);
>
> flush();
>
> contact = contactDao.get(contact.getContactId());
>
> assertEquals("Fadhli", contact.getFirstName());
> assertNotNull(contact.getContactId());
>
> log.debug("removing contact...");
> contactDao.remove(contact.getContactId ());
> flush();
>
> try {
> contactDao.get(contact.getContactId());
> fail("Contact found in database!");
> } catch (DataAccessException dae){
> log.debug("Expected exception: " + dae.getMessage() + ".
This
> means contact is already removed from record");
> assertNotNull(dae);
> }
> }
>
>
> Here's the code that I added into the User class file:
>
> /**
> * Map user and contact bidirectional association
> * Cascade equivalent to cascade="save-update"
> * Enables transitive persistence for Contact instances.
> */
> @OneToMany(cascade ={ CascadeType.PERSIST,
> CascadeType.MERGE,
> CascadeType.REMOVE},
> mappedBy="user")
> @org.hibernate.annotations.Cascade(value =
> org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
> public Set<Contact> getContacts() {
> return contacts;
> }
>
> public void addContact(Contact contact) {
> contact.setUser (this);
> contacts.add(contact);
> }
>
> public void setContacts(Set<Contact> contacts) {
> this.contacts = contacts;
> }
>
>
> Can anyone point me in the right direction? It seems the error message,
it
> can't find the method addContact in the User class.
>
> Your help is deeply appreciated.
>
> Thanks
>
> --
> /fadhli
--
http://raibledesigns.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
/fadhli