运行Spring Roo PIzzashop示例

时间:2015-11-27 08:27:05

标签: maven spring-roo

我确实使用过Spring,但我是Spring Roo的新用户,所以我已经下载了1.3.2并希望运行pizzashop示例。 我有maven 3.2.1,安装了JDK8。我从命令行启动了Roo,并希望执行"脚本pizzashop.roo"在新创建的目录中,但是我遇到了几个错误:

  1. 裁剪激活web-simple失败,因为我没有简单的web 配置。在找不到之后,我通过删除线解决了这个问题 发行包中的tailor.xml或通过Google。
  2. 执行测试失败,因为"无法加载ApplicationContext"。 我该如何解决这个问题?
  3. 我运行了执行包,这是成功的,之后我尝试了mvn tomcat:从命令行运行,但失败了:

    2015-11-27 09:10:03,645 [main] ERROR org.springframework.web.context.ContextLoader - Context 初始化失败 org.springframework.beans.factory.parsing.BeanDefinitionParsingException: 配置问题:无法读取候选组件类: 文件 [C:\发展\部件\ roo_pizza \目标\类\ COM \ SpringSource的\ pizzashop \域\ PizzaOrderPk.class]; 嵌套异常是org.springframework.core.NestedIOException:ASM ClassReader无法解析类文件 - 可能是由于新的Java 尚未支持的类文件版本:类路径资源 [爪哇/ IO / Serializable.class]

  4. 对我来说,看起来Java 8不受支持,尽管我读过Roo 1.3增加的Java8支持。 (我对ApplicationContext问题没有任何想法。) 我想在下周做一个Roo演示,感谢任何帮助。

    由于

    TeaBee

4 个答案:

答案 0 :(得分:0)

Spring Roo是一个非常灵活的工具,但这意味着它也很复杂和繁琐。超过50%,当我使用它时,我必须手动解决问题以使其运行。但另一方面,你有一个强大的工具。 如果你不适合使用弹簧,我建议你想要使用更轻巧,更稳定的工具,比如JBoss Forge或generjee。或者,如果你真的需要弹簧,请检查弹簧。

答案 1 :(得分:0)

所以,我开始修理东西: 首先,我降级到Java7,然后升级到maven 3.3.9。 首先,roo命令"执行测试"无法运行。这需要通过将mvnXXX.cmd文件(在maven \ bin中)复制到mvnXXX.bat来进行修复。看起来roo正在寻找" bat"文件。 现在,一切都运行良好。 我也注意到,通过运行mvn tomcat:run,Catalina 6.0.29启动了。所以我改为mvn tomcat7:run。我将恢复为Java8,并发布结果。

答案 2 :(得分:0)

因此,在升级到Java8之后,roo控制台抱怨无法加载ApplicationContext。 尝试添加:

Intent intent3 = new Intent(Intent.ACTION_SEND);
            intent3.setData(Uri.parse("mailto:"));
            intent3.setType("text/plain");
            intent3.putExtra(Intent.EXTRA_EMAIL, new String[]{"abc@gmail.com"});
            intent3.putExtra(Intent.EXTRA_SUBJECT,"Temat");
            intent3.putExtra(Intent.EXTRA_TEXT, "Tekst wiadomości");

            PendingIntent pendingEmailIntent = PendingIntent.getActivity(context,0,Intent.createChooser(intent3,"Choose"),0);

            RemoteViews remoteViews = new RemoteViews(context.getPackageName(),R.layout.widget_layout);

            remoteViews.setOnClickPendingIntent(R.id.email_button,pendingEmailIntent);

到pom.xml,但没有帮助。

答案 3 :(得分:0)

所以,这是我做的修改,以启用Java8。 java设置为1.8 aspectj设置为1.8.3 sprint设置为4.2.3.RELEASE

抱怨:

The method installFormatters(FormatterRegistry) of type ApplicationConversionServiceFactoryBean must override or implement a supertype method in ApplicationConversionServiceFactoryBean.java

因为installFormatters在Spring 4中已被弃用。 注释掉了installFormatters Override部分。

将aspectj-maven-plugin升级到1.8.3 将pom.xml添加1.8到aspectj-maven-plugin

[WARNING] advice defined in org.springframework.mock.staticmock.AnnotationDrivenStaticEntityMockingControl has not been applied [Xlint:adviceDidNotMatch]
c:\development\components\roo_pizza\org\springframework\mock\staticmock\AnnotationDrivenStaticEntityMockingControl.aj:117

[INFO] 
[INFO] --- aspectj-maven-plugin:1.8:test-compile (default) @ pizzashop ---
[INFO] Showing AJC message detail for messages of types: [error, warning, fail]
[WARNING] this affected type is not exposed to the weaver: com.springsource.pizzashop.domain.PizzaOrderPk [Xlint:typeNotExposedToWeaver]
c:\development\components\roo_pizza\org\springframework\beans\factory\aspectj\AnnotationBeanConfigurerAspect.aj:82

[WARNING] this affected type is not exposed to the weaver: com.springsource.pizzashop.domain.PizzaOrderPk [Xlint:typeNotExposedToWeaver]
c:\development\components\roo_pizza\org\springframework\beans\factory\aspectj\AnnotationBeanConfigurerAspect.aj:88

[WARNING] this affected type is not exposed to the weaver: com.springsource.pizzashop.domain.PizzaOrderPk [Xlint:typeNotExposedToWeaver]
c:\development\components\roo_pizza\org\springframework\beans\factory\aspectj\AbstractInterfaceDrivenDependencyInjectionAspect.aj:100

我仍然对这些警告感到不安,但是测试通过了,而且似乎是PizzaShop的运行。