Java
文章平均质量分 69
Java 技术在 SAP 产品中的应用
汪子熙
Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今。Jerry 是 SAP 社区导师,SAP 中国技术大使。在长达16年的 SAP 产品开发生涯里,Jerry 曾经先后参与 SAP Business ByDesign,SAP CRM,SAP Cloud for Customer,SAP S/4HANA,SAP Commerce Cloud(电商云)等标准产品的研发工作。
Jerry 工作中使用 ABAP, Java, JavaScript 和 TypeScript 进行开发, 对包括 SAP UI5 在内的多款 SAP 自研框架有深入的研究。
展开
-
如何查找 jsp 自定义指令的实现源代码
要查找最后一行中core自定义标签库的实现源代码,你需要经过几个步骤。这个过程依赖于多个因素,包括你对项目结构的了解、是否有访问源代码的权限,以及你的开发环境。接下来,我将逐步展示如何查找这种类型的标签库的源代码,并解释相关概念和工具的使用。原创 2024-04-22 16:46:06 · 342 阅读 · 0 评论 -
JSP 指令标签解析
在开始深入探讨 JSP(Java Server Pages)的具体代码段之前,我们需要了解 JSP 技术背景及其在 Web 开发中的作用。JSP 是一种用于生成动态内容的服务器端技术,它允许在 HTML 代码中嵌入 Java 代码。这种技术是由 Sun Microsystems 提出,目的是为了简化网页内容的开发,并支持快速开发动态网页。原创 2024-04-22 16:33:47 · 408 阅读 · 1 评论 -
Java 程序员极速上手 go
随着 Go 语言的流行,很多公司的技术栈在往 Go 上转,但很多招进来的后端开发工程师都是 Java 技术栈,然后在工作中边学边上手。那么 Java 程序员要想极速上手 Go,应该从哪些方面入手呢?对于已经有一定基础的 Java 工程师,可以思考自己以前用 Java 编程时,最常使用的语言特性,列一个清单出来。然后按照这个清单,去学习 Go 语言的对应实现方式,这样能够有针对性的的学习,有的放矢。原创 2024-02-04 21:00:00 · 874 阅读 · 0 评论 -
括号在 Java 编程中的作用详解
括号在Java编程中有多种用途,包括确定运算的优先级、定义方法参数、控制流程、数组访问、类型转换等。理解这些用法对于编写清晰、可读、可维护的Java代码至关重要。通过使用括号,程序员可以确保代码在逻辑和语法上是正确的,提高代码的可读性和可维护性。在编写Java代码时,充分了解括号的各种用法是非常重要的。这有助于编写更加灵活、高效且易于理解的代码。希望本文提供的示例和解释有助于你更好地理解Java中括号的多样用途。原创 2024-01-19 18:32:01 · 485 阅读 · 0 评论 -
Spark - About trend of ERP topic - serie 2employee
Sent: Saturday, August 15, 2015 2:57 PM我没有通过编辑配置文件的方式来维护集群信息,而是首先起了一个master node, 然后手动起了两个worker连接到master上去,最后提交job到master上去。start-master.shthen ps -aux7334 5.6 0.6 1146992 221652 pts/0 Sl 12:...原创 2019-07-17 11:20:46 · 384 阅读 · 1 评论 -
Java 异常 java.net.UnknownHostException 的原因和解决方案
在Java编程中,是一个常见的异常,它通常表示在进行网络操作时,无法通过主机名找到对应的IP地址。这个异常是java.net包中的一部分,具体地说,它是类的一个实例。异常通常是由主机名无法解析为IP地址引起的。解决这个异常的关键是检查主机名的拼写,确保网络连接正常,检查DNS配置,并在必要时使用备用的主机名或IP地址。通过仔细排查并解决上述问题,可以有效地处理异常,确保网络操作的顺利进行。原创 2023-12-27 08:48:43 · 17491 阅读 · 1 评论 -
Java 程序里 transient 关键字的使用方法介绍
有些情况下,我们可能不希望对象的某些字段被序列化。比如,这个字段可能包含了敏感信息,我们不希望这些信息被传输或者存储。或者,这个字段可能是临时的,对于对象的状态并不重要。是一个很有用的关键字,它可以帮助我们控制序列化过程中哪些字段需要被包含在内,哪些字段需要被忽略。序列化是一个复杂的过程,但是简单来说,就是将一个对象转换为一个字节流,这样这个字节流就可以在网络上进行传输,或者可以存储到本地。是一个关键字,主要被用于管理序列化过程中哪些字段需要被忽略。,所以不会被序列化。,那么这个字段就不会被序列化。原创 2023-11-15 22:07:09 · 24 阅读 · 0 评论 -
关于 Maven 的 Settings.xml 文件
文件在Maven中起着关键作用,允许开发人员配置全局、用户和项目特定的设置。通过它,可以指定本地仓库位置、镜像设置、特定项目的配置集等,以实现更高效的构建和管理Java项目。熟练地配置文件可以使Maven在不同环境中更加灵活和高效地运行。原创 2023-11-01 21:45:50 · 180 阅读 · 0 评论 -
Maven Settings.xml 的语法详解
文件是 Maven 的一个配置文件,包含了影响 Maven 运行方式的全局配置信息。文件中配置本地仓库的位置,连接的远程仓库,以及代理设置等。文件的位置有两个,一个是 Maven 安装目录的。文件,那么用户级别的配置会覆盖全局的配置。文件夹下,这个是全局的。目录下,这是用户级别的。原创 2023-11-01 21:45:08 · 34 阅读 · 0 评论 -
关于 Commerce 启动时遇到的错误消息 failed to initialize connector HTTP 9001
在Spring应用程序启动过程中遇到连接器初始化失败的错误消息时,你需要仔细检查可能导致这个问题的各种原因。这可能涉及端口冲突、网络配置问题、SSL证书问题或配置错误。通过仔细排查和逐一解决这些问题,你可以成功地启动你的Spring应用程序并修复这个错误。希望这篇文章能够帮助你更好地理解和解决Spring应用程序启动时的连接器初始化问题。原创 2023-09-04 10:17:16 · 139 阅读 · 0 评论 -
创建 elastic search 索引的一些注意事项
这包括数据的类型(例如文本,数字,日期等)、数据的大小(例如是否有大量的数据需要被索引)、查询的需求(例如是否需要全文搜索,是否需要聚合操作等)。如果我们需要对姓名进行全文搜索,对年龄进行范围查询,对生日进行聚合操作,那么我们在创建索引时就需要为每个字段设置相应的类型和分析器。:ES 默认开启动态映射功能,这意味着如果索引中新加入的文档包含新的字段,ES 会自动为这些新字段创建映射。我们可以为每个字段定义类型(例如 text,keyword,date,long 等),也可以定义分析器、格式化器等。原创 2023-08-21 15:18:19 · 126 阅读 · 0 评论 -
如何在已创建的 es 索引中增加分片
这是因为 Elasticsearch 在创建索引时,会根据分片的数量把数据分布到不同的节点上,如果在创建索引后改变分片的数量,那么数据的分布就会出问题,这是 Elasticsearch 设计上的一个决定。而且,在数据复制的过程中,如果有新的数据被写入到旧的索引中,那么这些新的数据不会被复制到新的索引中。也就是说,我们需要创建一个新的索引,这个新的索引有我们期望的分片数量,然后把旧的索引的数据拷贝到新的索引中。删除旧索引:如果你确定新索引中的数据是正确的,那么你可以删除旧的索引。创建新索引:你可以使用。原创 2023-08-17 09:13:22 · 364 阅读 · 0 评论 -
Swagger 管理 API 的一些经验分享
我们还可以直接在页面中发送请求,来测试我们的 API。**遵循 RESTful 设计原则:**虽然 Swagger 可以支持各种各样的 API 设计,但是它最初是为 RESTful API 设计的,因此最好遵循 RESTful 的设计原则,如使用合适的 HTTP 动词,使用状态码来反映操作的结果,等等。总的来说,Swagger 是一个非常强大的 API 设计工具,它可以帮助我们更好地设计和开发 API,提高我们的开发效率,同时也可以帮助我们生成出色的 API 文档,提高我们的 API 的可用性和易用性。原创 2023-07-08 09:03:41 · 560 阅读 · 0 评论 -
关于 Java 和 node affinity 这个概念的联系
服务器亲和性:在分布式环境中部署Java应用程序时,可以考虑将特定的Java应用程序部署在特定的服务器节点上,以实现服务器亲和性。容器化环境中的亲和性:在将Java应用程序部署到容器化环境(如Kubernetes)时,"node affinity"可以指涉到将特定的Java容器或Pod调度到特定的节点上。总结而言,虽然"node affinity"在Java开发领域中不是一个常见的术语,但在特定的部署、调度和分布式场景中,它可以指涉到控制Java应用程序与特定节点相关联的技术和方法。原创 2023-06-12 15:18:07 · 453 阅读 · 0 评论 -
使用 Java 代码调用 openAI 的 ChatGPT API
要在Java Spring Framework中使用OpenAI API,您需要使用一个能够处理HTTP请求的库。restTemplate()方法上的@Bean注解创建了一个RestTemplate bean,可以自动装配到其他类中以进行HTTP请求。spring-boot-starter-web依赖项包含了RestTemplate库,以及构建使用Spring进行Web应用程序所需的其他依赖项。首先,您需要将Spring RestTemplate库添加到您的项目中。更详细的操作,请参考这篇。原创 2023-05-16 12:11:45 · 1040 阅读 · 5 评论 -
什么是浏览器 cookies 里的 JSessionID?
JSessionID的作用是唯一标识用户的会话。当用户首次访问一个Java Web应用程序时,Web服务器会为该用户生成一个唯一的JSessionID,并将其作为Cookies发送给浏览器。JSessionID在用户访问Java Web应用程序时由Web服务器分配,并以Cookies的形式存储在用户的浏览器中。通过在浏览器中存储Cookies,Web服务器可以在用户访问同一网站时识别用户并提供个性化的服务。在Web开发中,JSessionID是一个重要的概念,它与浏览器Cookies密切相关。原创 2023-05-11 10:51:26 · 1420 阅读 · 0 评论 -
深入理解 Java 的整型类型:如何实现 2+2=5?
我们从 Eclipse 调试器里发现,Integer 内部类的 cache 数组里,第 132 个元素的值为 4,第 133 个元素的值为 5. 本来 Integer.valueOf 方法,对于输入 4,从Integer 内部类缓存数组里,返回第 132 个元素的值,即 4.array[132] = array[133]:最后,将缓存数组中下标为 133 的元素的值赋给下标为 132 的元素,从而修改了缓存数组中下标为 132 的元素的值。这就是 Java 里实现 2 + 2 = 5 这个算式的方法之一。原创 2023-04-14 20:28:36 · 144 阅读 · 0 评论 -
如何在 SAP BTP 上创建 Module 之间具有依赖关系的 SAP MTA 应用
我的 sapui5 项目是一个 MTA 工程,MTA 工程中包含了一个前端的 sap ui5 的 freestyle 工程和一个后端的Spring Java工程。请问我该怎么创建这个工程,和做哪些配置能实现这样的数据传递。当在 MTA 中组合 Java 和 SAP UI5 时,您需要确保 Java RESTful API 与 SAP UI5 之间的通信是可行的。在上面的代码中,我们使用 jQuery 的 $.ajax() 方法从 “/api/data” URL 中获取数据,并在成功时将数据打印到控制台上。原创 2023-04-07 22:58:28 · 188 阅读 · 0 评论 -
如何用 SAP Commerce Cloud CMS API 批量返回多个 CMS Component 数据
使用 HTTP post:URI: 负载的例子:要批量返回多个CMS组件数据,您可以使用SAP Commerce Cloud的CMS API中提供的以下方法:FlexibleSearch API 是一个灵活的查询API,可以使用它来检索CMS组件的数据。您可以使用以下步骤来批量返回多个CMS组件数据:构建 FlexibleSearch 查询,以检索您需要的CMS组件数据。使用 FlexibleSearchService API 执行查询,以检索符合查询条件的所有 CMS 组件数据。遍历结果列表并获取每个组原创 2023-03-31 11:18:37 · 103 阅读 · 0 评论 -
如何配置 jad,让 Eclipse 可以自动显示反编译之后的 .class 源代码
生成的 Ant 脚本,可以从 CVS 存储库中获取相关项目,构建 jar、Javadoc、源代码 zip,将所有内容以准备发布的格式放在一起并将其发送到远程位置(例如,本地网络或下载服务器) ).插件开发环境 (Plug-in Development Environment,缩写为 PDE) 提供用于创建、开发、测试、调试、构建和部署 Eclipse 插件、片段、特性、更新站点和 RCP 产品的工具。里,能发现一个新的配置 JadClipse 的标签页,将 jad.exe 的路径,配置到。原创 2023-01-02 21:14:16 · 933 阅读 · 0 评论 -
tomcat 端口 8005 被 windows 系统服务占用导致启动闪退的问题
我的 tomcat 安装在这个目录下:C:\app\tomcat-9.0.56执行 bin 文件夹下的时,遇到闪退的问题。查看 logs 文件夹下的日志文件:遇到如下错误消息:大意是端口 8005 被占用。我们使用命令行, 查看是哪一个进程占用了端口 8005.下图打印结果,-n选项是打印占用 8005 端口的进程 pid,为 4,状态为LISTENING:在 Windows10 任务管理器里,发现 pid 为 4 的进程为系统进程:我们修改 tomcat 目录下的。原创 2022-10-31 10:56:02 · 1160 阅读 · 0 评论 -
SAP Java Connector 错误 - JCO_ERROR_COMMUNICATION
注意:JCoDestination 只是一个配置实例,其中包含 JCo 运行时创建连接所需的所有信息。它本身不会创建或保持任何连接。如果由目标配置定义,JCo 运行时会创建连接并将它们汇集起来。目标 BACK 仅在 JCo RFC 服务器场景中可用,在发送 RFC 请求的时间点和返回 RFC 响应的时间点之间。JCoDestination 标识函数调用的物理目的地。它包含连接到 SAP 系统所需的所有属性。这里涉及到 destination 的概念。这是因为 JCO 项目文件夹下。字段,仍然使用了默认的。原创 2022-10-29 19:35:40 · 1933 阅读 · 2 评论 -
Eclipse 给 Java 应用创建 Run configuration 时找不到 main type 的错误消息
文件由核心 Eclipse 平台维护,其目标是从通用的、独立于插件的 Eclipse 视图中描述项目。这个文件负责维护项目名称是什么,它指的是工作区中的其他哪些项目,以及用于构建项目的构建器是什么。实际上,开发人员在 Eclipse 中看到的所有内容都是安装在 Eclipse 上的插件的结果,而不是 Eclipse 本身。我在 Eclipse 里选中 com 文件夹下选中一个 .java 文件,这个 Java 文件实现了。把上图的 com 文件夹拖拽到 Java 创建向导自动生成的 src 文件夹内。原创 2022-10-25 14:25:06 · 867 阅读 · 0 评论 -
Eclipse 安装了 Groovy 开发插件之后,双击打不开 .java 文件了
就会出现这个错误,因为 Groovy 插件通过 Java reflection 机制,复写了。我在 Eclipse 里打开我的 Java 项目,双击一个。如果 Eclipse 安装了。原创 2022-10-25 12:14:32 · 796 阅读 · 0 评论 -
SAP Java Connector 正常运行所需的网络配置
此选项可以在“Unicode”或“MDMP & Unicode”选项卡的“与目标系统的通信类型”部分(适用于 7.00 及更高版本)或“特殊选项”选项卡的“目标系统中的字符宽度”部分中找到 "(适用于版本 6.10 到 6.40)。对于从非 Unicode SAP 系统到 JCoServer 实例的 RFC outbound 调用或对非 Unicode 或 Unicode SAP 系统的任何 inbound RFC 调用,您无需执行任何特殊配置任务。如果这不起作用,请向您的网络管理员寻求帮助。原创 2022-10-25 12:13:17 · 602 阅读 · 0 评论 -
SAP Java Connector 组件介绍
JCo 的 JNI 库包含用于网络通信的本机代码。JCo 存档和 JNI 库之间只有松散的耦合,但是 JCo 需要 JNI 库的特定最低版本,该版本通常与分发包中的 JCo 存档一起提供。注意:如果开发人员使用的是 32 位 JVM,则还需要 32 位 JCo JNI 库,无论是在 32 位还是 64 位操作系统上运行都是如此。原创 2022-10-25 11:15:38 · 429 阅读 · 0 评论 -
SAP Java Connector 的配置指南
SAP Java 连接器 (JCo) 3.1 需要 Java 运行时环境 (JRE) 版本 8 或 11。有关受支持平台和 Java 运行时环境的最新详细列表,请参阅 SAP 说明 2786882。最新版本的 SAP Java 连接器可从 SAP 支持门户网站下载,网址为 https://support.sap.com/jco。在那里,您还可以找到各种支持的平台和处理器的所有可用分发包以及 PDF 文件的 JCo 3.1 文档。请注意,您不能在一个进程中同时使用 JCo 3.0 和 JCo 3.1。原创 2022-10-25 10:53:35 · 486 阅读 · 0 评论 -
运行在 CCV2 环境上的 Spartacus Storefront 如果出现性能问题该怎么分析
理论上来说,一旦用户请求到达 Spartacus SSR 服务器,通常有三个潜在的响应时间贡献者,其中最后一个也可以细分成多个潜在的性能瓶颈:对于第三点,下列原因都可能造成 API 服务器响应时间过长:如果发现代码执行是响应时间的主要贡献者,接下来的调查应该集中在 Node.js 代码和 SSR 服务器资源利用率上。如果最大贡献者是 OCC 请求,则可以重复上述相同步骤,以确定这些请求中最慢的最大贡献者。 例如,使用 api-demo.com:443 层的响应时间分析,将有助于了解绝大部分响应时间,到底是花原创 2022-07-22 10:40:17 · 207 阅读 · 0 评论 -
我的SAP Hybris学习笔记
Installation guideThe install guide: https://help.hybris.com/6.5.0/hcd/8c46c266866910149666a0fe4caeee4e.html具体就几个命令:<recipe_name> 可以先用B2C_ACCinstall.bat -r b2c_accinstall.bat -r b2c_acc initializeinstall.bat -r b2c_acc startuse -r -s -d f原创 2020-10-06 21:32:07 · 2045 阅读 · 0 评论 -
谈谈 JDK 和 SAPMachine 的关系
曾几何时,所谓 的新闻,在网上传得沸沸扬扬。这个新闻被专业人士视为标题党,而国内众多技术论坛,比如某乎社区上,有很多大神对 这个说法做出了非常专业的解读,笔者这里就不班门弄斧了,Bing 搜索引擎根据“Oracle Java收费”的关键字搜索,第一条搜索结果就很值得一读。本文想论述的重点,是介绍JDK,Oracle JDK, Open JDK和SAP JDK这几个名词的关系。Java编程语言的软件开发工具包,是 Java 开发的核心,包含了Java运行环境即JVM(Java Virtual Machine原创 2022-06-05 14:15:09 · 427 阅读 · 0 评论 -
如何使用 API 的方式消费 SAP Commerce Cloud 的订单服务
在SAP官网 help.sap.com 上根据关键字 commerce 搜索,结果列表里会显示出好几个名称相近的产品,这难免会让一些 SAP commerce (电商云)的初学者感到有点疑惑。其实只需要耐心地打开这些链接逐一阅读一会儿,就能弄清楚这几个产品间的差异:SAP Commerce:SAP On-Premises上的电商解决方案SAP Commerce Cloud on SAP Infrastructure: SAP Commerce的云端解决方案,Commerce核心代码通过SAP内部工具打成一个原创 2022-06-04 23:31:31 · 244 阅读 · 0 评论 -
Eclipse 不为人所知的另一面 - 企业管理软件领域 ABAP 编程语言开发利器
对于 Java 从业人员来说,无论是刚入门的新手还是专家,肯定都正在或者曾经使用过 Eclipse,这是一款优秀的编写 Java 程序的 IDE.然而可能大多数 Java 开发人员都没有意识到,Eclipse 同时也能用来进行另一款在企业管理软件开发领域大名鼎鼎的编程语言的开发工作,这门语言就是 ABAP.在 2022 年 3 月最新的 TIOBE 编程语言排行榜上,Python, C 和 Java 分列前三甲,而 ABAP 位列第 42 名。ABAP 之前的两门语言,分别是同样出自豪门微软的 Po原创 2022-04-12 09:46:46 · 615 阅读 · 0 评论 -
Spring Boot 应用使用 application.yml 和 application.properties 的区别
Spring 3.1 引入了新的 @PropertySource 注解作为向环境添加属性源的便捷机制。我们可以将此注解与 @Configuration 注解结合使用:@Configuration@PropertySource("classpath:foo.properties")public class PropertiesWithJavaConfig { //...}注册新属性文件的另一种非常有用的方法是使用占位符,它允许我们在运行时动态选择正确的文件:@PropertySourc原创 2022-04-05 10:16:20 · 624 阅读 · 0 评论 -
一个实际的例子学习 SAP BTP Java 应用的 @Before 注解使用方式
我们可以使用了 On 注释,它替换了 CAP Java 运行时提供的事件的默认处理,以此来注册自定义事件处理程序,从而处理实体的 READ 或 CREATE 事件。如果想增加默认处理,我们将使用 @Before 和 @After 注释。 使用 @Before 注释注册的事件处理程序旨在执行输入实体数据的验证。 这使得在创建订单之前验证特定书籍的可用库存成为可能。 相比之下,使用 @After 注释注册的事件处理程序可以对返回的实体进行后处理。 这对于在从数据库中读取订单或其项目后计算总和净金额元素很有用。原创 2022-04-01 09:22:36 · 907 阅读 · 0 评论 -
Java SpringBoot 应用使用命令行 mvn spring-boot run 启动的原理
将应用程序打包为 jar 并使用嵌入式 HTTP 服务器的最大优势之一是可以像运行其他任何应用程序一样运行这些提供了 Web 功能的应用程序。 调试 Spring Boot 应用程序也很容易; 不需要任何特殊的 IDE 插件或扩展。spring-boot:run 是 steroïd 上的 java -jar 命令,作为 Maven 构建的一部分运行,确保所有必需的参数都传递给应用程序(例如资源)。 spring-boot:run 还将通过在运行应用程序之前执行测试编译生命周期目标来确保项目被编译。当运行原创 2022-04-27 11:00:17 · 1387 阅读 · 1 评论 -
SAP 移动开发技术综述
作为全球最杰出的企业管理软件提供商之一,SAP 的解决方案涵盖了从 PC 端到移动设备等多个平台。笔者在 SAP 成都研究院工作了 15 年,对企业管理软件领域内的移动开发也有所涉猎。本文将我过去工作中关于移动开发中积累的一些经验和大家交流,请社区内移动开发的专家们不吝赐教。本文通过以下三部分,分享笔者在 SAP 经历过的移动应用开发的项目经验:(1) 基于 Java 的 Android 原生移动应用开发(2) 基于 UI5 + Cordova 的混合移动应用开发(3) 基于 SAP BTP 平台原创 2022-02-25 09:32:50 · 1177 阅读 · 0 评论 -
Java Spring Beans.xml里的Bean定义是如何被解析出来的
ClassPathXmlApplicationContext的构造函数里,一部分逻辑是给各个成员变量赋上初始值:然后是执行refresh操作。获取ConfigurableListableBeanFactory:来自Beans.xml的bean,被解析出来后,就存储在BeanFactory的成员变量beanDefinitionMap里。那么Beans.xml里的bean定义,是如何被解析的呢?进入abstractApplicationContext里看个究竟:loadBeanDefinti原创 2020-08-01 11:27:48 · 1252 阅读 · 0 评论 -
代码重构那些事儿
大家好,这是我今天演讲的目录,分Java,JavaScript,ABAP三门编程语言来讲述。Java•JAD•javap•Java Decompiler•Source Monitor•Visual VM•Refactor Menu in EclipseABAP•Code inspector•Refactor feature in AIE•Code coverageJav...原创 2019-02-03 12:27:23 · 385 阅读 · 0 评论 -
ABAP和Java SpringBoot的单元测试
ABAP在ABAP类里,本地类(Local Class)里用关键字FOR TESTING声明过的方法,在单元测试启动后会自动被调用到。Spring Boot在Spring及Spring Boot “Convention over configuration”的设定思路里,放在路径src/test/java下面以Tests.java结尾的Java类会被当成单元测试类处理。对上述项目执行...原创 2018-11-04 11:00:21 · 367 阅读 · 0 评论 -
如何使用点击超链接的方式打开Android手机上的应用
在Android应用的AndroidManifest.xml里加入如下的配置片段:<action android:name="my_action"/><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category...原创 2019-09-23 10:43:56 · 1383 阅读 · 0 评论