Frage

i wurde im Anschluss an die Führung http://appfuse.org/display/APF/Using + Struts + 2 eine einfache appfuse Website zu machen, aber ich einen Fehler bekam, während sie mit Maven kompilieren, die org.appfuse.webapp.action.BaseAction berichtet, existiert nicht.

ich viel von dem Google ohne Glück gesucht, kann jemand mir einen Hinweis, schätzt für jede Hilfe, Idee oder beraten. Thankyou

beide Maven 2.2.1 und 3 erzeugen denselben Fehler: mit Urbild: appfuse-basic-Streben-Urform, v.2.1.0-M1

maven Befehl:

mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -
DarchetypeArtifactId=appfuse-basic-struts-archetype -DarchetypeVersion=2.1.0-M1 
-DgroupId=com.mycompany -DartifactId=myproject

an diesem pt, MVN-Test oder Anlegesteg. Run-Krieg hat keinen Fehler auslösen

Allerdings, wenn ich hinzufügen 2 Klassen (PersonActionTest und PersonAction), wie unten, nicht um es zu kompilieren

PersonActionTest: src \ test \ Java \ com \ mycompany \ webapp \ webapp \ Aktion

package com.mycompany.webapp.action;


import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.ServletActionContext;
import org.appfuse.service.GenericManager;
import org.appfuse.tutorial.model.Person;  \\this fails to compile
import org.appfuse.webapp.action.BaseActionTestCase;    \\this fails to compile
import org.springframework.mock.web.MockHttpServletRequest;

public class PersonActionTest extends BaseActionTestCase {
    private PersonAction action;

    @Override
    protected void onSetUpBeforeTransaction() throws Exception {
        super.onSetUpBeforeTransaction();
        action = new PersonAction();
        GenericManager personManager = (GenericManager) applicationContext
                .getBean("personManager");
        action.setPersonManager(personManager);

        // add a test person to the database
        Person person = new Person();
        person.setFirstName("Jack");
        person.setLastName("Raible");
        personManager.save(person);
    }

    public void testSearch() throws Exception {
        assertEquals(action.list(), ActionSupport.SUCCESS);
        assertTrue(action.getPersons().size() >= 1);
    }
}

PersonAction: src \ main \ java \ com \ mycompany \ webapp \ webapp \ Aktion

package com.mycompany.webapp.action;


import org.appfuse.webapp.action.BaseAction; \\this fails to compile
import org.appfuse.tutorial.model.Person;  \\this fails to compile
import org.appfuse.service.GenericManager;

import java.util.List;

public class PersonAction extends BaseAction {
    private GenericManager<Person, Long> personManager;
    private List persons;

    public void setPersonManager(GenericManager<Person, Long> personManager) {
        this.personManager = personManager;
    }

    public List getPersons() {
        return persons;
    }

    public String list() {
        persons = personManager.getAll();
        return SUCCESS;
    }
}

Fehlermeldung:

[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building AppFuse Struts 2 Application 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- aspectj-maven-plugin:1.2:compile (default) @ realtest ---
[ERROR] The import org.appfuse.webapp cannot be resolved
[ERROR] The import org.appfuse.tutorial cannot be resolved
[ERROR] Person cannot be resolved to a type
[ERROR] Person cannot be resolved to a type
[ERROR] personManager cannot be resolved or is not a field
[ERROR] personManager cannot be resolved
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.285s
[INFO] Finished at: Thu Oct 21 09:35:56 CST 2010
[INFO] Final Memory: 6M/27M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:aspectj-maven-plugin:1.2:compil
e (default) on project realtest: Compiler errors :
[ERROR] error at import org.appfuse.webapp.action.BaseAction;
[ERROR] ^^^^^^^^^^^^^^^^^

abgeschnitten als der Rest der msg ähnelt

Dank ~

steven

War es hilfreich?

Lösung

Ich bin kein Experte AppFuse (damit meine ich, dass ich bin mir nicht bewusst alle Details der Änderungen und bestehende Probleme), aber das erzeugte Projekt der Version 2.1.0-M1 des Urbild mit verfehlt die appfuse-struts Artefakt (was bietet o.a.w.a.BaseAction).

Ich habe versucht, es manuell hinzufügen, aber dann lief in einige andere Artefakt Auflösung Problem (eine transitive Abhängigkeit nicht gefunden) und gab einfach auf.

Doch das Projekt, das Sie bekommen würde mit dem Vorversion des Urbild ( dh Version 2.0.2) sieht ok und meine Empfehlung, diese Version zu verwenden, wäre statt:

mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes \
    -DarchetypeArtifactId=appfuse-basic-struts \
    -DarchetypeVersion=2.0.2 \
    -DgroupId=com.mycompany \
    -DartifactId=myproject

Andere Tipps

ich weiß, dieser Thread ist ziemlich alt, aber ich habe diesen Fehler mehrere Male, deshalb möchte ich meine Lösung teilen. Seit kurzem bin ich diesen Fehler in der folgenden Einstellung. * Es ist ein Projekt, Util sagen, dass die Einfuhren eine Bibliothek, zum Beispiel dbcp * Ein weiteres Projekt, sagen wir App, hängt von Util und Aspekte sind in diesem Projekt angewendet werden. * Ich eine neue Klasse App hinzugefügt, dass verwendet eine transitiv Abhängigkeit, zum Beispiel einige abstrakte Klasse von dbcp die neue Klasse C implementiert. Da App auf Util abhängt, ist dbcp sichtbar in Eclipse und alles ist in Ordnung. Allerdings, wenn ich mein Projekt in der Befehlszeile kompilieren mit mvn installieren, schlägt die aspectj Plugin mit Angabe, dass der Import von dbcp nicht aufgelöst werden konnte. * Eine direkte Abhängigkeit von App zu dbcp löst das Problem (für mich) Einschließlich.

So aspectj verwendet keine transitiven Abhängigkeiten während der Java-Compiler-Plugin funktioniert. Wahrscheinlich ist die Position der neuen Klasse C nicht die „optimale“ ein, sollte es das Util Projekt verschoben werden, aber das ist ein anderes Thema.

Hoffnung, dass jemand auf diesen Thread kommen kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top