首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >导入org.appfuse.webapp.action.BaseAction无法解析

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

Stack Overflow用户
提问于 2010-10-20 17:19:34
回答 2查看 1.9K关注 0票数 1

我按照指南http://appfuse.org/display/APF/Using+Struts+2制作了一个简单的应用程序站点,但是在用Maven编译时遇到了一个错误,即报告org.appfuse.webapp.action.BaseAction不存在。

我搜索了很多谷歌没有运气,谁能给我一个提示,感谢任何帮助,想法或建议。谢谢你

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

maven命令:

代码语言:javascript
复制
mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -
DarchetypeArtifactId=appfuse-basic-struts-archetype -DarchetypeVersion=2.1.0-M1 
-DgroupId=com.mycompany -DartifactId=myproject

在这个pt中,mvn测试或jetty:run没有引发错误。

但是,当我按下面的方式添加两个类(PersonActionTest和PersonAction)时,它无法编译

PersonActionTest: src\test\java\com\mycompany\webapp\webapp\action

代码语言:javascript
复制
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);
    }
}

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

代码语言:javascript
复制
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;
    }
}

错误消息:

代码语言:javascript
复制
[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] ^^^^^^^^^^^^^^^^^

截断,因为msg的其余部分类似。

谢谢~

史蒂文

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-22 01:11:38

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

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

但是,使用原型的前一版本 (即2.0.2版本)获得的项目看起来还可以,我的建议是使用这个版本:

代码语言:javascript
复制
mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes \
    -DarchetypeArtifactId=appfuse-basic-struts \
    -DarchetypeVersion=2.0.2 \
    -DgroupId=com.mycompany \
    -DartifactId=myproject
票数 0
EN

Stack Overflow用户

发布于 2012-12-06 13:30:23

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

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

希望这能帮上这条线的人。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3980577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档