- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 camel 世界的新手,在与 jcr 组件建立连接时遇到问题。看我的测试代码:
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jcr.JcrConstants;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.junit.Test;
public class ObjectToJCRRouteTest extends CamelTestSupport {
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:a")
.setProperty(JcrConstants.JCR_NODE_NAME,
constant("node"))
.setProperty("my.contents.property", body())
.to("jcr://admin:admin@localhost:8080/home/test");
}
};
}
@Test
public void putJCRNode() throws Exception {
template.sendBodyAndHeader("direct:a", null, null, null);
Thread.sleep(1000);
}
}
我尝试使用 jcr://admin:admin@localhost/home/test, "jcr://admin:admin@localhost:8080/home/test", "jcr://admin:admin@localhost: 8080/存储库/主页/测试”
我使用 rmi 使用存储库浏览器 ( http://www.subshell.com/en/toromiro/index.html ) 测试了 jackrabbit,连接成功
提前感谢任何帮助!!!
我的 jackrabit 服务器是:
jmartinez@jmartinez:~/software/jackrabbit$ java -jar jackrabbit-standalone-2.4.3.jar
欢迎使用 Apache Jackrabbit!
使用存储库目录 jackrabbit
将日志消息写入 jackrabbit/log
正在启动服务器...
Apache Jackrabbit 现在运行在 http://localhost:8080/
pom配置
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jcr</artifactId>
<version>2.10.4</version>
</dependency>
异常代码为
org.apache.camel.FailedToCreateRouteException: Failed to create route route1 at: >>> To[jcr://admin:admin@localhost:8080/rmi/home/test] <<< in route: Route[[From[direct:a]] -> [SetProperty[CamelJcrNodeName, {no... **because of Failed to resolve endpoint: jcr://admin:admin@localhost:8080/rmi/home/test due to: No JCR repository defined under 'localhost'**
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:879)
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:172)
at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:722)
at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1789)
at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1575)
at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1444)
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60)
at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1412)
at org.apache.camel.test.junit4.CamelTestSupport.startCamelContext(CamelTestSupport.java:184)
at org.apache.camel.test.junit4.CamelTestSupport.setUp(CamelTestSupport.java:115)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: jcr://admin:admin@localhost:8080/rmi/home/test due to: No JCR repository defined under 'localhost'
at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:479)
at org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:50)
at org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:187)
at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:108)
at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:114)
at org.apache.camel.model.SendDefinition.resolveEndpoint(SendDefinition.java:61)
at org.apache.camel.model.SendDefinition.createProcessor(SendDefinition.java:55)
at org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:461)
at org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:179)
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:876)
... 32 more
Caused by: org.apache.camel.RuntimeCamelException: No JCR repository defined under 'localhost'
at org.apache.camel.component.jcr.JcrEndpoint.<init>(JcrEndpoint.java:65)
at org.apache.camel.component.jcr.JcrComponent.createEndpoint(JcrComponent.java:31)
at org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.java:91)
at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:461)
... 41 more
最佳答案
Camel jcr:
url 的主机部分不应该引用实际的网络主机,而是引用定义在 javax.jcr.Repository
对象实例 Camel 注册表。大多数时候,这意味着它将被定义为 Spring 或 Blueprint XML 文件中的 bean。
要在单元测试中做同样的事情,您可以覆盖 createRegistry
方法以将 bean 添加到 Camel 注册表中。在下面的代码示例中,JackRabbit URLRemoteRegistry
被添加到名称为 MyJCR
的 Camel 注册表中。
路由本身使用 URL jcr://admin:admin@MyJCR/default/home/test
。请注意,添加了 URL 的 /default
部分以指向要添加节点的 JCR 存储库工作区。
public class ObjectToJCRRouteTest extends CamelTestSupport {
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:a")
.setProperty(JcrConstants.JCR_NODE_NAME,
constant("node"))
.setProperty("my.contents.property", body())
.to("jcr://admin:admin@MyJCR/default/home/test");
}
};
}
@Override
protected JndiRegistry createRegistry() throws Exception {
JndiRegistry registry = super.createRegistry();
registry.bind("MyJCR", new URLRemoteRepository("http://localhost:8080/rmi"));
return registry;
}
@Test
public void putJCRNode() throws Exception {
template.sendBody("direct:a", "Some contents");
Thread.sleep(1000);
}
}
关于apache-camel - Apache Camel jcr 长耳兔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15233420/
我使用一个应用程序,我们可以在其中操作 JCR 节点,通常您可以重命名、删除、删除或移动它们。 使用 JCR API,我可以访问我的存储库中的节点并按照它们在 JCR 中的相同顺序返回一组节点。 我希
我只是想知道 jcr:primaryType 和 jcr:mixinTypes 之间有什么区别,以及为什么使用 jcr:mixinTypes ?这意味着什么?如果您检查 crx 中的/content/
使用 JCR-SQL2 查询时,我注意到 CONTAINS运算符查找节点 没有与条件中的字符串完全相同的字符串。 例子 以下查询: SELECT * FROM [nt:base] AS s WHERE
我想在 CQ 5.6 (AEM) 实例中包含的 JCR 存储库中搜索包含给定字符串 xxx 的所有 .jsp 文件。作为 JCR 对 XPath(或 JCR-SQL2)的解释的新手,我在表达查询方面不
需要帮助获取节点属性的 string[] 值? 例如,我有一个节点图像,它具有 String[] 类型的属性“references”。我需要获取数组的第一个值。 谢谢 最佳答案 从节点,您可以获取re
我想使用一个或多个值作为多值属性的输入参数在内容存储库中进行搜索 类似于:找到所有主类型为“nt:unstructured”的节点,其属性“multiprop”(多值属性)包含值“one”和“two”
Modeshape 文档的第 7.1.6 节说“您的应用程序现在可以使用标准 JCR 2.0 API 创建和删除工作区。” JCR 2.0 文档说使用 Workspace.createWorkspac
我正在构建一个 jcr 查询并从存储库接收数据。这是我的代码: String queryString = "SELECT * FROM public:hours"; try { // ge
我将 Jackrabbit 与 JCR 一起使用,如何更改节点的顺序? 最佳答案 有很多方法; 1) 创建一个带有“orderable”选项的父节点类型。 [ns:NodeType] > ns:Par
如何确定 JCR 属性是否为多阀属性?我尝试对该属性调用 getType(),但如果它是字符串或字符串数组,则返回相同的值。 谢谢! 最佳答案 使用 Property 的 isMultiple()
我的 AEM 项目中有一段配置需要简化。 配置可以由两组用户更改。一个需要对一组参数进行精细控制,而另一个只关心单个参数。 我没有编写自定义 Ext JS 插件来隐藏/显示字段并添加一个额外的字段来在
我有以下代码将“rose.gif”插入到roseNode中。但是如何从存储库中检索文件? Node roseNode = session.getRootNode().getNode("wiki
我注意到,当我为下拉列表设置我的 defaultValue 时,尽管当我第一次将组件添加到页面时在下拉列表中正确选择了它,它不会将 defaultValue 写入相应的 JCR,直到我编辑组件并保存它
对于我工作的 CQ5 环境,我们有一个发布服务器场。这些服务器上的某些内容受到限制,因此只有属于特定组的用户才能看到这些内容。我想编写要保护的文件夹(节点)的权限设置脚本,这样我就不必使用内容资源管理
如何在以下站点结构中配置 jcr:language 属性,例如在节点 (/content/myapp/uk/en/jcr:content)? { "content": { "m
对于我工作的 CQ5 环境,我们有一个发布服务器场。这些服务器上的某些内容受到限制,因此只有属于特定组的用户才能看到这些内容。我想编写要保护的文件夹(节点)的权限设置脚本,这样我就不必使用内容资源管理
我注意到 javax.jcr 的 javadocs 丢失了。据我所知,所有存储此内容的页面现在都显示 404。 示例: link1 link2 link3 有相关消息吗?还有其他地方可以找到 java
我有一些测试代码,用于检查 JCR 节点上的属性值,对被测系统执行外部操作,然后检查同一 JCR 节点上相同属性的值以检查它是否正确实际上已经改变了。 我遇到的问题是第一个查询之后的所有后续查询都返回
我正在将 Magnolia 用于我的一个项目,并在其中创建了一个 REST 端点。其余端点将从我的自定义工作区读取节点并将结果返回给客户端。非常简单。 如果我在 Magnolia JCR Utils
我很难找到使用 SQL2 查询语言比较日期的方法。 我希望能够做这样的事情: SELECT p.* FROM [nt:base] AS p WHERE EXTRACT(YEAR FROM p.[som
我是一名优秀的程序员,十分优秀!