【问题标题】:AWS Flow Jar creation with Maven + Java 1.8使用 Maven + Java 1.8 创建 AWS Flow Jar
【发布时间】:2017-04-12 08:13:32
【问题描述】:

有没有人能够使用 Java 1.8 + AWS Flow + Maven 编译应用程序?

我有一个使用 Java 1.8 创建的已建立的 Java 应用程序,它使用 AWS 库和 AWS 流框架。我现在希望自动化产品的构建,我选择使用 Maven。至此,项目是在 eclipse 中手动导出的。

我已经到了可以构建一个 Jar 的地步,其中包含我们生成的工作流类(外部客户端 + 工厂)以及我理解的方面类(xxxxx$1.class、xxxxx$2.class)。

最终目标是在编译时进行编织。

但是,在运行 maven 构建的 jar 时,工作流无法按预期工作。应用程序完全忽略 @Asynchronous 注释并导致未就绪状态。结果,它将取消我们希望执行的活动的调度。

我创建了一个简单的应用程序,其中包含一个工作流和活动来显示我遇到的问题。此版本已通过 eclipse 导出并且可以运行,但是通过 POM 构建时出现错误。

Start with message: With Comp
Created Workers
Added implentations
Nov 28, 2016 12:14:11 PM com.amazonaws.services.simpleworkflow.flow.worker.GenericWorker start
INFO: start: GenericWorkflowWorker[super=GenericWorkflowWorker[service=com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflowClient@163e4e87, domain=Experimental, taskListToPoll=TEST, identity=3174@ip-10-0-1-141, backoffInitialInterval=100, backoffMaximumInterval=60000, backoffCoefficient=2.0], workflowDefinitionFactoryFactory=com.amazonaws.services.simpleworkflow.flow.pojo.POJOWorkflowDefinitionFactoryFactory@56de5251]
Nov 28, 2016 12:14:12 PM com.amazonaws.services.simpleworkflow.flow.worker.GenericWorker start
INFO: start: GenericActivityWorker [super=GenericActivityWorker[service=com.amazonaws.services.simpleworkflow.AmazonSimpleWorkflowClient@4c60d6e9, domain=Experimental, taskListToPoll=TEST, identity=3174@ip-10-0-1-141, backoffInitialInterval=100, backoffMaximumInterval=60000, backoffCoefficient=2.0], taskExecutorThreadPoolSize=100]
Start workers
Now Sleep
Sleep Done
Make Call
DECIDER 1
DECIDER 2
DECIDER DOING CATCH
java.lang.IllegalStateException: not ready
        at com.amazonaws.services.simpleworkflow.flow.core.Settable.get(Settable.java:91)
        at com.amazonaws.services.simpleworkflow.flow.core.Functor.get(Functor.java:35)
        at root.DeciderWFMethods.printMessage(DeciderWFMethods.java:79)
        at root.DeciderWFMethods.access$100(DeciderWFMethods.java:6)
        at root.DeciderWFMethods$1.doTry(DeciderWFMethods.java:54)
        at --- continuation ---.(:0)
        at root.DeciderWFMethods.workflowExecute(DeciderWFMethods.java:42)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.amazonaws.services.simpleworkflow.flow.pojo.POJOWorkflowDefinition.invokeMethod(POJOWorkflowDefinition.java:150)
        at com.amazonaws.services.simpleworkflow.flow.pojo.POJOWorkflowDefinition.access$1(POJOWorkflowDefinition.java:148)
        at com.amazonaws.services.simpleworkflow.flow.pojo.POJOWorkflowDefinition$1.doTry(POJOWorkflowDefinition.java:76)
        at --- continuation ---.(:0)
        at com.amazonaws.services.simpleworkflow.flow.pojo.POJOWorkflowDefinition.execute(POJOWorkflowDefinition.java:66)
        at com.amazonaws.services.simpleworkflow.flow.worker.AsyncDecider$WorkflowExecuteAsyncScope.doAsync(AsyncDecider.java:70)
DECIDER DOING FINALLY

比较了从 eclipse 和 maven 构建生成的 jar 的内容后,对我来说没有什么明显不同。

我在网上搜索了一些有用的东西,但只找到了 Java 1.6 / 1.7 的示例,没有找到 1.8 的示例。

在这一点上,我应该提到我是 maven 的新手,但相信它更有可能是 AspectJ 配置/AWS 构建工具问题,而不是 Maven 问题。

构建和运行

示例应用程序正在 EC2 实例上运行,使用 EC2 IAM 角色执行到名为“Experimental”的工作流域

它接受活动大写的字符串,然后决策者应该打印来自活动的消息。

构建。

mvn clean
mvn package

然后运行编译好的jar

java -jar Test.jar "a test message"

.

GitHub 链接

https://github.com/jwhitefield-hark/aws-flow-maven

任何建议将不胜感激。

【问题讨论】:

    标签: maven amazon-web-services java-8 amazon-swf


    【解决方案1】:

    在 AWS 论坛上的好心人的帮助下,我们设法解决了这个问题。

    我们的问题有两个。

    我们将编译器参数设置为 -proc:none,这会阻止构建完成。

    同样在我们的 aspectj-maven 插件中,我们将执行设置为 process-sources,这似乎是我们问题的症结所在,因为这会阻止创建良好的构建,也不会向我们显示生成的错误包含我们的编译器参数的结果。

    作为 aspectj-maven-plugin 中的附带说明,我们已将目标设置为 1.6,这不是必需的。我们尝试过,因为 eclipse 可能一直在使用这些设置。无论哪种方式,这些属性似乎都没有影响。

    我们还将 aspectj 库从 aws-java-sdk-swf-libraries 更改为 aws-swf-build-tools 以使其保持最新状态。

    https://forums.aws.amazon.com/thread.jspa?threadID=243838&tstart=0

    【讨论】:

      猜你喜欢
      • 2016-12-30
      • 2011-05-14
      • 1970-01-01
      • 1970-01-01
      • 2012-04-19
      • 2016-08-28
      • 2014-04-01
      • 2014-12-12
      • 2016-08-21
      相关资源
      最近更新 更多