Java 导入org.appfuse.webapp.action.BaseAction无法解析

Java 导入org.appfuse.webapp.action.BaseAction无法解析,java,struts2,maven,appfuse,Java,Struts2,Maven,Appfuse,我按照指南创建了一个简单的appfuse站点,但在使用Maven编译时出现了一个错误,即报告org.appfuse.webapp.action.BaseAction不存在 我在谷歌上搜索了很多,但运气不好,谁能给我一些提示,感谢你的帮助、想法或建议。谢谢 maven 2.2.1和3都产生了相同的错误: 使用原型:appfuse基本struts原型,v.2.1.0-M1 maven命令: mvn archetype:generate -B -DarchetypeGroupId=org.appfus

我按照指南创建了一个简单的appfuse站点,但在使用Maven编译时出现了一个错误,即报告org.appfuse.webapp.action.BaseAction不存在

我在谷歌上搜索了很多,但运气不好,谁能给我一些提示,感谢你的帮助、想法或建议。谢谢

maven 2.2.1和3都产生了相同的错误: 使用原型:appfuse基本struts原型,v.2.1.0-M1

maven命令:

mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -
DarchetypeArtifactId=appfuse-basic-struts-archetype -DarchetypeVersion=2.1.0-M1 
-DgroupId=com.mycompany -DartifactId=myproject
此时,mvn测试或jetty:run-war未引发错误

然而,当我添加如下2个类(PersonationTest和PersonAction)时,它无法编译

角色测试:src\test\java\com\mycompany\webapp\webapp\action

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);
    }
}
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;
    }
}
角色操作:src\main\java\com\mycompany\webapp\webapp\action

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);
    }
}
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;
    }
}
由于msg的其余部分类似,因此被截断

谢谢~

steven

我不是Appfuse专家(我的意思是,我不知道更改和现有问题的所有细节),但使用原型版本2.1.0-M1生成的项目遗漏了Appfuse struts工件(它提供了
o.a.w.a.BaseAction

我试图手动添加它,但后来遇到了其他一些工件解决问题(未找到可传递的依赖项),于是放弃了

但是,使用原型的版本(即2.0.2版)得到的项目看起来还可以,我的建议是使用此版本:

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

我知道这个线程已经很旧了,但是我现在已经多次遇到这个错误,所以我想和大家分享我的解决方案。 我最近在以下设置中遇到此错误。 *有一个项目,比如说Util,导入一个库,例如dbcp *另一个项目,比如App,依赖于Util,而方面将应用于该项目。 *我向App添加了一个新类,该类使用可传递依赖项,例如,新类C实现了dbcp中的一些抽象类。因为应用程序依赖于Util,所以dbcp在eclipse中是可见的,并且一切正常。但是,当我在命令行上使用mvn安装编译项目时,aspectj插件失败,并声明无法解析从dbcp导入的内容。 *包括从App到dbcp的直接依赖性解决了这个问题(对我来说)

因此aspectj不使用可传递依赖项,而java编译器插件使用可传递依赖项。也许,新类C的位置不是“最佳”的,它应该被移动到Util项目,但这是一个不同的问题


希望这有助于任何访问此线程的人。

您需要提供更多详细信息。你使用原型了吗?如果是,请提供命令。你查资料了吗?如果是,请提供命令。谢谢,详细信息已发布谢谢Pascal,我在使用2.0.2而未导入o.a.w.a.BaseAction时遇到另一个错误,它在mvn原型命令后立即在mvn测试中出错。[错误]无法在project myproject上执行目标org.codehaus.mojo:aspectj maven插件:1.0:compile(默认):找不到aspectj插件中作为方面库引用的工件org.springframework:spring方面->[Help 1]2.0.2在您的计算机上运行良好吗?@Mytox否,我不知道我怎么会错过这个问题,我在发布之前测试了这个项目。无论如何我看到一封邮件说,如果你不使用方面,你可以对aspectj maven插件部分进行注释,我就是这么做的。但随后我又面临另一个问题。老实说,appfuse现在让我很紧张,我不会再花更多时间了。很抱歉没有提供更多帮助,但我建议在appfuse邮件列表上发布。我将很快删除我的答案。非常感谢Pascal,我实际上是在阅读《Java上的flex》一书,我个人对Appfuse没有特别的兴趣,但想学习flex。我想我会再买一本书来更好地学习Flex,再次感谢^^