java支持的webscript不';我根本就没出现
我正在遵循alfresco wiki的java支持WebScript指南,但无法使其正常工作。更糟糕的是,我无法在日志或其他文件中生成错误,或者在/alfresco/service/index/all中生成webscript列表 除了wiki示例之外,我的类使用的不是AMP而是jar。这是因为我必须将我的WebScript添加到当前构建到jar的现有应用程序中 据我所知,创建java支持的webscript有三个主要步骤:java支持的webscript不';我根本就没出现,java,spring,rest,alfresco,Java,Spring,Rest,Alfresco,我正在遵循alfresco wiki的java支持WebScript指南,但无法使其正常工作。更糟糕的是,我无法在日志或其他文件中生成错误,或者在/alfresco/service/index/all中生成webscript列表 除了wiki示例之外,我的类使用的不是AMP而是jar。这是因为我必须将我的WebScript添加到当前构建到jar的现有应用程序中 据我所知,创建java支持的webscript有三个主要步骤: 创建java类 注册豆子 放置描述符 我实现了如下。文件位置相对于jar
package nl.mark.alfresco.myservice.webscript;
import java.util.HashMap;
import java.util.Map;
import org.springframework.extensions.webscripts.DeclarativeWebScript;
import org.springframework.extensions.webscripts.Status;
import org.springframework.extensions.webscripts.WebScriptRequest;
public class GetFooTypes extends DeclarativeWebScript {
@Override
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status) {
Map<String, Object> model = new HashMap<String, Object>();
model.put("types", "[\"foo\", \"bar\"]");
return model;
}
}
包nl.mark.alfresco.myservice.webscript;
导入java.util.HashMap;
导入java.util.Map;
导入org.springframework.extensions.webscripts.DeclarativeWebScript;
导入org.springframework.extensions.webscripts.Status;
导入org.springframework.extensions.webscripts.WebScriptRequest;
公共类GetFooTypes扩展了DeclarativeWebScript{
@凌驾
受保护映射executeImpl(WebScript请求请求,状态){
映射模型=新的HashMap();
model.put(“类型”,“foo\”,“bar\”);
收益模型;
}
}
alfresco/extension/templates/webscripts/nl/mark/cacher/footype.desc.xml
<webscript>
<shortname>Retrieve a list of foo types associated to a bar type.</shortname>
<description>Returns an empty JSON array or a JSON array filled with foo types as Strings, named 'types'.</description>
<url>/mark/cacher/footype?typecode={code}</url>
<authentication>user</authentication>
<family>Mark cacher</family>
</webscript>
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
<!-- Java backed webscripts -->
<bean id="webscript.nl.mark.cacher.footype.get" class="nl.mark.alfresco.myservice.webscript.GetFooTypes"
parent="webscript">
</bean>
</beans>
检索与条形图类型关联的foo类型列表。
返回一个空JSON数组或一个名为“types”的JSON数组,该数组以字符串形式填充foo类型。
/标记/cacher/footype?类型代码={code}
用户
标记缓存
alfresco/extension/markcontext.xml
<webscript>
<shortname>Retrieve a list of foo types associated to a bar type.</shortname>
<description>Returns an empty JSON array or a JSON array filled with foo types as Strings, named 'types'.</description>
<url>/mark/cacher/footype?typecode={code}</url>
<authentication>user</authentication>
<family>Mark cacher</family>
</webscript>
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
<!-- Java backed webscripts -->
<bean id="webscript.nl.mark.cacher.footype.get" class="nl.mark.alfresco.myservice.webscript.GetFooTypes"
parent="webscript">
</bean>
</beans>
此markcontext.xml
文件还包含正确拾取的其他注册
最后,这个jar被放置在alfresco的WEB-INF/lib文件夹中,然后服务器被重新启动。然而,webscript在其URL(404)下不可用,我在(非常干净的)日志中没有发现任何相关内容。它也没有列在webscripts索引中,即使加载失败也没有。我觉得我弄乱了文件的位置。我认为描述文件应该命名为
footype.get.desc.xml
我认为描述文件应该命名为footype.get.desc.xml完整的文件夹和文件名
alfresco/extension/templates/webscripts/nl/mark/cacher/footype.get.desc.xml
定义
nl/mark/cacher包
FootType的服务id
HTTP GET方法的绑定
<bean id="webscript.nl.mark.cacher.footype.get"
class="nl.mark.alfresco.myservice.webscript.GetFooTypes"
parent="webscript">
</bean>
前缀webscript由Web脚本引擎拾取。
Web脚本引擎将获取结束get。它告诉Web脚本引擎要处理哪个HTTP方法。在本例中,HTTP GET
因此,在代码中,在文件描述符文件名中缺少了。get
alfresco/extension/templates/webscripts/nl/mark/cacher/footype.get.desc.xml
参考:
完整的文件夹和文件名
alfresco/extension/templates/webscripts/nl/mark/cacher/footype.get.desc.xml
定义
nl/mark/cacher包
FootType的服务id
HTTP GET方法的绑定
<bean id="webscript.nl.mark.cacher.footype.get"
class="nl.mark.alfresco.myservice.webscript.GetFooTypes"
parent="webscript">
</bean>
前缀webscript由Web脚本引擎拾取。
Web脚本引擎将获取结束get。它告诉Web脚本引擎要处理哪个HTTP方法。在本例中,HTTP GET
因此,在代码中,在文件描述符文件名中缺少了。get
alfresco/extension/templates/webscripts/nl/mark/cacher/footype.get.desc.xml
参考:
Quick guess(此处无运行露天):将描述符重命名为“footype.get.desc.xml”Quick guess(此处无运行露天):将描述符重命名为“footype.get.desc.xml”我在问题中犯了一个错误,描述符的名称实际上是footype.desc.get.xml
。事实上,这仍然是错误的。解决方案:footype.get.desc.xml
如您所说。在这件事上纠缠了一天多,我想我现在要去掐死什么了:P。谢谢!SpringbeanID应该是webscript.nl.mark.cacher.footype.get
,如问题中提供的配置中所示。您缺少服务ID。我在问题中犯了一个错误,描述符实际上名为footype.desc.get.xml
。事实上,这仍然是错误的。解决方案:footype.get.desc.xml
如您所说。在这件事上纠缠了一天多,我想我现在要去掐死什么了:P。谢谢!SpringbeanID应该是webscript.nl.mark.cacher.footype.get
,如问题中提供的配置中所示。您缺少服务ID。