<!-- Restlet Servlet -->
<servlet>
<servlet-name>RestletServlet</servlet-name>
<servlet-class>org.restlet.ext.spring.SpringServerServlet</servlet-class>
<init-param>
<param-name>org.restlet.component</param-name>
<param-value>RestletComponent</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>RestletServlet</servlet-name>
<url-pattern>/rs/*</url-pattern>
</servlet-mapping>
<bean id="RestletComponent" class="org.restlet.Component" />
<bean id="RestletComponentService" class="org.apache.camel.component.restlet.RestletComponent">
<constructor-arg index="0">
<ref bean="RestletComponent" />
</constructor-arg>
</bean>
这不适用于REST DSL。
我正在用这条简单的路由来测试它:
<rest>
<get uri="/hello">
<to uri="direct:hello"/>
</get>
</rest>
<route id="hello">
<from uri="direct:hello"/>
<setBody><constant>Dolly</constant></setBody>
</route>
REST DSL成功地找到了在web.xml中定义的RestletComponent Bean,但该Bean没有与之关联的camelContext,因此当代码试图访问上下文时,我会得到一个空指针异常。
基本上,我开始怀疑REST DSL与servlet容器中的Restlet不兼容。我希望托管servlet容器处理传入的请求,而不希望为我的骆驼上下文生成一个单独的restlet服务器进程(在一个新的端口上)。
我运气不好吗?
下面是xml-dsl.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd">
<import resource="common.xml" />
<camelContext xmlns="http://camel.apache.org/schema/spring">
<rest>
<post uri="/persons">
<route>
<setBody>
<simple>insert into person(firstName, lastName) values('${header.firstName}','${header.lastName}')
</simple>
</setBody>
<to uri="jdbc:dataSource"/>
<setBody>
<!--<simple>select * from person ORDER BY id desc OFFSET 1 ROWS</simple>-->
<simple>select * from person where id in (select max(id) from person)</simple>
</setBody>
<to uri="jdbc:dataSource"/>
</route>
</post>
<get uri="/persons/{personId}">
<route>
<setBody>
<simple>select * from person where id = ${header.personId}</simple>
</setBody>
<to uri="jdbc:dataSource"/>
</route>
</get>
<get uri="/persons">
<route>
<setBody>
<constant>select * from person</constant>
</setBody>
<to uri="jdbc:dataSource"/>
</route>
</get>
</rest>
</camelContext>
</beans>
这不起作用。它抛出java.net.SocketException:权限被拒绝
我以前没有使用过Rest DSL,但是根据文档,您可以明确地让Camel知道您正在使用Rest组件:
<restConfiguration component="RestletComponent" port="9091"> <componentProperty key="foo" value="123"/> </restConfiguration>
它确实说,如果没有指定这一点,它将查找以检查是否有任何组件与DSL集成,但我猜,但这是值得尝试的。
另外,我发现spring beans ID以大写开头有点奇怪。
我想知道我是否能做这样的事情。假设我有一个数字流1-20。我想利用一个特性,比如drop 3(我想用Java术语来说是限制还是跳过?)并产生一个流,即数字流: 1-20、4-20、7-20等 然后可能平坦地将这些全部映射到一条溪流中。我尝试了使用Stream.iterate的各种组合,主要是从流生成流,但我一直收到一个IllegalStateExcema,说流已经操作或关闭。 例如,人们可能期望这
我正在用Spring Boot和MongoDB开发一个web应用程序。我想让服务与@transactional spring注释一起工作,但我不知道这是否真的有效。(我以前没有与mongoDB合作过)。 我添加了注释,看起来一切都正常运行(应用程序运行,我可以执行CRUD的所有操作),但是,我不知道Spring是否忽略了注释,它是否正常工作,或者是否真的在考虑事务性。 在另一篇文章中,我看到我应该
我搜索了一下,我觉得这是可能的。但当我这样尝试的时候: JMockit能与Scala一起工作吗?如果可以的话,我做错了什么?
因此,如果我不能重写字符串作为它的最终结果(因此阻止我重写它的compareTo()方法来调用compareToIgnoreCase()),那么还有其他方法可以实现吗? 任何帮助都是非常感谢的。
我已经成功地在我的Windows机器上安装了gnuradio,并尝试将随附的python环境(Python 2.7)与PyCharm v2018集成。我创建了一个新项目,并为包添加了一个用户定义的路径,以指向所有gnuradio库的位置(C:\Program Files\GNURadio-3.7\lib\site-包)。 在Pycharm可以毫无怨言地看到所有gnuradio包的意义上,一切似乎都
在我的Laravel应用程序中,我需要定期使用Guzzle将数据发送到API。 API使用承载令牌进行身份验证,并请求和接受原始JSON。为了进行测试,我使用Postman访问了API,一切都工作得很好。
我是不是漏掉了什么?我很确定编码sshPrivateKey字节[]是一种方法(如果我不这样做,JSCH会抱怨错误的密钥),但我不确定我还缺少什么?
http://jbossas.jboss.org/downloads 我发现一些文章提到Jboss AS 7不能与JDK8一起工作,但我的同事是PC是用JDK8启动的。我想应该有另一种方法来解决。 更新 经过尝试,我发现Jboss EAP7.0或Jboss AS 7.0.0 Final可以用JDK8执行,我将降级到我需要的版本。