首页 > 解决方案 > 在浏览器中附加 /cmis/json 后部署的应用程序 URL 不起作用

问题描述

我正在学习文档管理服务(文档存储库)如何在 sap 云平台中工作。

我正在关注链接的博客https://blogs.sap.com/2019/01/17/how-to-handle-attachments-in-sap-cloud-platform-workflow/ 我已经完成了第 1 步、第 2 步。我创建了一个测试存储库并创建了一个示例代理桥 Java 应用程序。我能够部署和启动 CMIS 代理应用程序。第 3 步是测试部署的 URL,这是我需要帮助的。

CMISProxyServlet

包 com.cf.cloud;

导入 com.sap.ecm.api.AbstractCmisProxyServlet;

公共类 CMISProxyServlet 扩展 AbstractCmisProxyServlet { private static final long serialVersionUID = 1L;

@Override
protected boolean supportAtomPubBinding() {
    return false;
}

@Override
protected boolean supportBrowserBinding() {
    return true;
}


public CMISProxyServlet() {
    super();
}

@Override
protected String getRepositoryUniqueName() {
    return "MySampleRepository";
}

@Override
// For applications in production, use a secure location to store the secret key.
protected String getRepositoryKey() {
    return "abcdef0123456789";
}

}


WEB.XML

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         id="WebApp_ID"  version="3.0" metadata-complete="false">

    <login-config>
        <auth-method>FORM</auth-method>
    </login-config>

    <session-config>
        <session-timeout>20</session-timeout>
    </session-config>

    <security-role>
        <role-name>Everyone</role-name>
    </security-role>

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>All SAP Cloud Platform users</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>Everyone</role-name>
        </auth-constraint>

        <user-data-constraint>
            <transport-guarantee>NONE</transport-guarantee>
            <!-- Use CONFIDENTIAL as transport guarantee to ensure SSL connection (HTTPS) on public deployments
            <transport-guarantee>CONFIDENTIAL</transport-guarantee> -->
        </user-data-constraint>
    </security-constraint>

    <filter>
        <filter-name>RestCsrfPreventionFilter</filter-name>
        <filter-class>org.apache.catalina.filters.RestCsrfPreventionFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>RestCsrfPreventionFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <filter>
        <filter-name>HttpSecurityHeadersFilter</filter-name>
        <filter-class>com.sap.cloud.sdk.cloudplatform.security.servlet.HttpSecurityHeadersFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>HttpSecurityHeadersFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <filter>
        <filter-name>HttpCachingHeaderFilter</filter-name>
        <filter-class>com.sap.cloud.sdk.cloudplatform.security.servlet.HttpCachingHeaderFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>HttpCachingHeaderFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <display-name>CMISProxyServlet</display-name>
    <servlet>
        <servlet-name>CMISProxyServlet</servlet-name>
        <servlet-class>com.sap.ecm.proxy.CMISProxyServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>CMISProxyServlet</servlet-name>
        <url-pattern>/cmis/*</url-pattern>
    </servlet-mapping>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Proxy</web-resource-name>
            <url-pattern>/cmis/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>EcmDeveloper</role-name>
        </auth-constraint>

    </security-constraint>
    <login-config>
        <auth-method>BASIC</auth-method>
    </login-config>
</web-app>

应用程序的 hello world servlet 有效。但是当我将 /cmis/json 附加到应用程序 url 时,我收到了 404 错误。

我想知道两件事。首先,这是查看文档是否可以存储在 SCP 存储库中的正确用例吗?其次,我们在 SCP 中是否有专门的工作流程来处理本博客提到的附件,有人可以提供链接吗?

如果我的问题非常模糊,我深表歉意,我只是想弄清楚 DMS 在 S4 Hana Cloud 中是如何工作的。

标签: javadmssap-cloud-platform

解决方案


希望您正确获取博客中提到的 CMIS URL。

处理此用例的另一个好方法是使用 SAP Document Center,它不需要您部署和维护代理网桥。

此外,您还可以获得 SAP Document Center 的所有额外功能。

此外,正如您提到的与 SAP DMS 的内置集成。

请在此处查看详细信息

https://help.sap.com/viewer/product/SAP_Document_Center/Cloud/en-US

https://blogs.sap.com/2016/05/23/connecting-plm-dms-to-sap-document-center/

此致,

索拉夫


推荐阅读