iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >如何使用SAP云平台 + JNDI访问Internet Service
  • 761
分享到

如何使用SAP云平台 + JNDI访问Internet Service

2023-06-04 01:06:00 761人浏览 薄情痞子
摘要

如何使用SAP云平台 + JNDI访问Internet Service,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。以Internet Service Http:

如何使用SAP云平台 + JNDI访问Internet Service,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

如何使用SAP云平台 + JNDI访问Internet Service

以Internet Service Http://maps.Googleapis.com/maps/api/distancematrix/xml?origins=Walldorf&destinations=Berlin为例,

在浏览器里访问这个url,得到输出:从Walldorf到Berlin的距离。

如何使用SAP云平台 + JNDI访问Internet Service

如何让一个部署到SAP云平台的Java应用也能访问到该internet service呢?

首先在SAP云平台里创建一个destination,维护service的end point:

如何使用SAP云平台 + JNDI访问Internet Service

在Java代码里使用SAP云平台里创建的destination:

如何使用SAP云平台 + JNDI访问Internet Service

然后使用JNDI service读取destination里配置的url:

如何使用SAP云平台 + JNDI访问Internet Service

部署到SAP云平台之后,在Eclipse里看到preview结果:

如何使用SAP云平台 + JNDI访问Internet Service

SAP云平台Cockpit显示如下:

如何使用SAP云平台 + JNDI访问Internet Service

浏览器访问如下:

如何使用SAP云平台 + JNDI访问Internet Service

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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <!-- Main sample servlet mapped to / so that the integration test harness can detect readiness (generic for all samples) --> <servlet> <servlet-name>ConnectivityServlet</servlet-name> <servlet-class>com.sap.cloud.sample.connectivity.ConnectivityServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>ConnectivityServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!-- Declare the JNDI lookup of destination --> <resource-ref> <res-ref-name>connectivityConfiguration</res-ref-name> <res-type>com.sap.core.connectivity.api.configuration.ConnectivityConfiguration</res-type> </resource-ref> </web-app>
package com.sap.cloud.sample.connectivity; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.InetSocketAddress; import java.net.Proxy; import java.net.URL; import javax.annotation.Resource; import javax.naming.Context; import javax.naming.InitialContext; import javax.servlet.ServletException; import javax.servlet.http.httpservlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.sap.cloud.account.TenantContext; import com.sap.core.connectivity.api.configuration.ConnectivityConfiguration; import com.sap.core.connectivity.api.configuration.DestinationConfiguration; public class ConnectivityServlet extends HttpServlet { @Resource private TenantContext  tenantContext; private static final long serialVersionUID = 1L; private static final int COPY_CONTENT_BUFFER_SIZE = 1024; private static final Logger LOGGER = LoggerFactory.getLogger(ConnectivityServlet.class); private static final String ON_PREMISE_PROXY = "OnPremise"; @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        HttpURLConnection urlConnection = null;        String destinationName = request.getParameter("destname"); if (destinationName == null) {            destinationName = "google_map";        } try {            Context ctx = new InitialContext();            ConnectivityConfiguration configuration = (ConnectivityConfiguration) ctx.lookup("java:comp/env/connectivityConfiguration");            DestinationConfiguration destConfiguration = configuration.getConfiguration(destinationName); if (destConfiguration == null) {                response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,                        String.fORMat("Destination %s is not found. Hint:" + " Make sure to have the destination configured.", destinationName)); return;            }            String value = destConfiguration.getProperty("URL");            URL url = new URL(value + "xml?origins=Walldorf&destinations=Paris");            String proxyType = destConfiguration.getProperty("ProxyType");            Proxy proxy = getProxy(proxyType);            urlConnection = (HttpURLConnection) url.openConnection(proxy);            injectHeader(urlConnection, proxyType);            InputStream instream = urlConnection.getInputStream();            OutputStream outstream = response.getOutputStream();            copyStream(instream, outstream);        } catch (Exception e) {            String errorMessage = "Connectivity operation failed with reason: " + e.getMessage()                    + ". See " + "logs for details. Hint: Make sure to have an HTTP proxy configured in your " + "local environment in case your environment uses " + "an HTTP proxy for the outbound Internet " + "communication.";            LOGGER.error("Connectivity operation failed", e);            response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,                    errorMessage);        }    } private Proxy getProxy(String proxyType) {        Proxy proxy = Proxy.NO_PROXY;        String proxyHost = null;        String proxyPort = null; if (ON_PREMISE_PROXY.equals(proxyType)) { // Get proxy for on-premise destinations proxyHost = System.getenv("HC_OP_HTTP_PROXY_HOST");            proxyPort = System.getenv("HC_OP_HTTP_PROXY_PORT");        } else { // Get proxy for internet destinations proxyHost = System.getProperty("https.proxyHost");            proxyPort = System.getProperty("https.proxyPort");        } if (proxyPort != null && proxyHost != null) { int proxyPortNumber = Integer.parseInt(proxyPort);            proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPortNumber));        } return proxy;    } private void injectHeader(HttpURLConnection urlConnection, String proxyType) { if (ON_PREMISE_PROXY.equals(proxyType)) { // Insert header for on-premise connectivity with the consumer account name urlConnection.setRequestProperty("SAP-Connectivity-ConsumerAccount",                    tenantContext.getTenant().getAccount().getId());        }    } private void copyStream(InputStream inStream, OutputStream outStream) throws IOException { byte[] buffer = new byte[COPY_CONTENT_BUFFER_SIZE]; int len; while ((len = inStream.read(buffer)) != -1) {            outStream.write(buffer, 0, len);        }    }}

关于如何使用SAP云平台 + JNDI访问Internet Service问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网精选频道了解更多相关知识。

--结束END--

本文标题: 如何使用SAP云平台 + JNDI访问Internet Service

本文链接: https://www.lsjlt.com/news/236116.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用SAP云平台 + JNDI访问Internet Service
    如何使用SAP云平台 + JNDI访问Internet Service,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。以Internet Service http:...
    99+
    2023-06-04
  • 如何使用SAP云平台的destination消费Internet上的OData service
    如何使用SAP云平台的destination消费Internet上的OData service,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。通过SAP云平台上的...
    99+
    2023-06-04
  • 如何使用SAP云平台Mobile Service开发移动应用
    本篇文章给大家分享的是有关如何使用SAP云平台Mobile Service开发移动应用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。今天要介绍的是SAP推出的另一种移动应用开发...
    99+
    2023-06-03
  • 如何在SAP云平台的Cloud Foundry环境下添加新的Service
    这期内容当中小编将会给大家带来有关如何在SAP云平台的Cloud Foundry环境下添加新的Service,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。我想在SAP云平台的Cloud Foundry环境...
    99+
    2023-06-04
  • 如何使用SAP云平台Android SDK创建Mobile应用
    本篇内容主要讲解“如何使用SAP云平台Android SDK创建Mobile应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用SAP云平台Android SDK创建Mobile应用”吧!...
    99+
    2023-06-03
  • SAP云平台中怎么使用MongoDB服务
    这篇文章将为大家详细讲解有关SAP云平台中怎么使用MongoDB服务,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。 使用命令行 cf marketplace查看当前SAP云平台的MongoD...
    99+
    2023-06-04
  • 如何使用JDBC操作SAP云平台上的HANA数据库
    本篇内容主要讲解“如何使用JDBC操作SAP云平台上的HANA数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用JDBC操作SAP云平台上的HANA数...
    99+
    2024-04-02
  • 如何使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数
    小编给大家分享一下如何使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!为了确保Internet应用能够访问Cor...
    99+
    2023-06-04
  • SAP云平台CloudFoundry中的用户如何自定义变量
    SAP云平台CloudFoundry中的用户如何自定义变量,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。CloudFoundry应用的manifest.xml里的env区域...
    99+
    2023-06-04
  • 如何进行SAP云平台上的SSO Principal Propagation设置
    这篇文章将为大家详细讲解有关如何进行SAP云平台上的SSO Principal Propagation设置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。我今天试图使用SAP云平台的SAP W...
    99+
    2023-06-03
  • 如何在Java代码中使用SAP云平台CloudFoundry环境的环境变量
    本文使用的例子源代码在我的github上。在我的公众号文章在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务介绍了如何通过Cloud Connector连接ABAP On-Premise系统。...
    99+
    2023-06-04
  • 如何上传HTML5应用到SAP云平台的Cloud Foundry环境下
    先使用WebIDE创建一个HTML5应用。New->Project from Template:...
    99+
    2023-06-02
  • 如何通过使用JDBC操作部署在SAP云平台上的HANA数据库
    如何通过使用JDBC操作部署在SAP云平台上的HANA数据库,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我介绍了如何通过JPA和EclipseLink操作部署...
    99+
    2023-06-02
  • 怎么使用Eclipse连接SAP云平台上的HANA数据库
    本篇文章为大家展示了怎么使用Eclipse连接SAP云平台上的HANA数据库,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 SAP云平台(Cloud Platfo...
    99+
    2024-04-02
  • Windows 平台下如何使用 Python?
    在 Windows 平台下使用 Python 是非常方便的,下面将为大家介绍如何在 Windows 平台上安装 Python,并演示一些基本操作。 一、安装 Python 下载 Python 安装包 Python 官网提供了 Windo...
    99+
    2023-11-11
    windows npm git
  • 如何使用nodejs消费SAP Cloud for Customer上的Web service
    这篇文章给大家介绍如何使用nodejs消费SAP Cloud for Customer上的Web service,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。看一个具体例子:C4C里Individual Custome...
    99+
    2023-06-04
  • 怎么使用cf curl查看SAP云平台上的应用各项明细
    本篇内容主要讲解“怎么使用cf curl查看SAP云平台上的应用各项明细”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用cf curl查看SAP云平台上的应用各项明细”吧!我有一个应用部署...
    99+
    2023-06-04
  • 如何使用Go语言和Redis开发在线问答平台
    如何使用Go语言和Redis开发在线问答平台简介在线问答平台是一种非常常见的社交平台,它允许用户发布问题并获取其他用户的回答。在本文中,我们将使用Go语言和Redis数据库来开发一个简单的在线问答平台。Go语言是一种高效、可靠的编程语言,而...
    99+
    2023-10-27
    Go语言 redis 在线问答
  • 怎么使用SAP云平台的Notification服务给Android应用推送通知消息
    今天就跟大家聊聊有关怎么使用SAP云平台的Notification服务给Android应用推送通知消息,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。登录SAP Cloud Platf...
    99+
    2023-06-03
  • Windows平台下如何使用PHP打包API?
    在现代互联网应用中,API被广泛应用于不同的领域,如移动应用程序、Web应用程序、IoT设备等等。API的重要性不言而喻,因为它们为不同的应用程序提供了一种通用的接口,使得这些应用程序可以共同工作并实现更强大的功能。 PHP是一种流行的W...
    99+
    2023-09-16
    打包 api windows
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作