奇怪的问题是,如果我们创建一个fat-jar来执行项目,而不是从NetBeans执行,它就会失败。有线索为什么吗?
这是一个简单的apache-camel应用程序,它使用Mina启动一条路由来接收HL7,然后使用一个bean直接回答ACK消息,这是一个简单的示例。
<bean id="hl7codec" class="org.apache.camel.component.hl7.HL7MLLPCodec">
<property name="charset" value="utf-8"/>
</bean>
<bean id="answerACKHL7" class="com.mycompany.AnswerEMRBean" />
<camelContext xmlns="http://camel.apache.org/schema/spring">
<route customId="true" id="routeID">
<from uri="mina:tcp://localhost:8255?sync=true&codec=#hl7codec" />
<bean ref="answerACKHL7" method="sendACK" />
</route>
</camelContext>
该应用程序有另一个java定义的REST路由,但这部分工作在Netbeans和执行jar文件中。
如果我们从Netbeans运行它,并向端口发送一条HL7消息,它就能正常工作。好的,我们用maven-shade-plugin3.2.4构建一个fat-jar,并用java-jar jarfile.jar运行它,一切似乎都开始了,然后我们发送相同的HL7消息,如果运行netbeans并得到一个异常,该消息可以工作。
错误消息副本:Grave:无法传递(ExchangeID上的MessageID:ID-DESKTOP-O7B5GIN-1603385955728-0-1上的ID-DESKTOP-O7B5GIN-1603385955728-0-1)。尝试传递后已耗尽:1已捕获:org.apache.camel.camelExecutionException:在Exchange上执行时发生异常:Exchange[]
RouteId ProcessorId Processor Elapsed (ms)
[routeID ] [routeID ] [from[mina://tcp://localhost:8255?codec=%23hl7codec&sync=true] ] [ 45]
...
[routeID ] [bean1 ] [bean[ref:answerACKHL7 method:sendACK] ] [ 0]
...
Camel版本3.2.0 Java版本1.8.0.221(在Netbeans和命令行中应该是相同的)
通过对fat jar的depedencies进行着色处理,您需要指导maven插件如何处理重复的资源。在您的情况下,maven-shade-plugin
重写了负责类型转换的TypeConverterLoader
,因此您得到了没有类型转换器可用于从type:java.lang.String转换为required type
异常。
您需要配置maven-shade-plugin
来合并该资源。查看如何为camel-main项目创建可执行JAR:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>executable-jar</shadedClassifierName>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>my.package.MainClass</mainClass>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/services/org/apache/camel/TypeConverterLoader</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
我试图在JAVA中找到一个简单的(ha)SOAP示例,其中包含一个工作服务,但我发现的任何示例都不工作。 我已经试过这个例子中的这个,但是它不起作用,它要求我输入一个正斜杠,但是它已经输入了,没有任何反应。 有人知道我可以下载/请求和修改的SOAP示例链接吗? 谢谢你的帮助。
我有一个对soap Web服务的请求,该服务在SoapUi中运行良好。我想在python脚本中调用此Web服务。 我尝试了一些模块:zeep,泡沫,...但是我总是有一个SSL错误。 以下是信息: https://37.71XXXXXXACONYX?wsdl 基本认证:用户名密码 身份验证类型:抢占式 我在SoapUi中提供了xml。 有人有什么想法吗? 谢谢!! 我试过:
我应该创建一个与wss4j服务对话的soap客户端。。 预期的肥皂消息如下所示: 我有以下内容: 这个配置文件为: config有一个保存在Usb令牌中的证书引用,登录时会询问pin码: 服务接口具有: 但由此产生的soap是: 它还提供 InvalidSecurity处理时发现错误 因此,区别在于:; 必须理解="1",反对必须理解="true" SignatureMethod算法http://
我正在尝试使用Angular2和Http POST对SOAP web服务进行一个非常简单的调用。如果我使用POSTMAN发布相同的消息,只需将内容类型设置为text/xml即可。 对于Angular2,我得到了以下错误:- SEC7120:原点http://localhost:3004在Access Control Allow Origin标头中找不到 SCRIPT7002: XMLHttpReq
Windows---------------: Linux---------- 那么,什么是主要的原因是这个问题,看起来一切都好从其他的选择 Apache Maven 3.6.0(97C98EC64A1FDFEE7767CE5FFB20918DA4F719F3;2018-10-24T14:41:47-04:00)Maven主页:/home/user/tools/Maven/apache-maven
我想展平一系列集合: 这失败了: ScalaFiddle。scala:7:错误:scala没有可用的隐式视图。收集不变的设置[_ 但真正让我困惑的是为什么这行得通?: 所以我的问题是:中的flatten和中对flatten的调用有什么区别?