-
关于JAVA 北向这块打算分两个帖子来说明一下最近遇到的问题:1、Demo工程无法对接电信平台(证书问题)2、JAVA SDK无法在android中使用。这个帖子我们先只讨论第一个问题:将Demo工程中平台IP改成电信平台的IP,运行出错,问题现象: executeHttpRequest failed.Exception in thread "main" java.lang.NullPointerExceptionat com.huawei.utils.StreamClosedHttpResponse.<init>(StreamClosedHttpResponse.java:36)at com.huawei.utils.HttpsUtil.executeHttpRequest(HttpsUtil.java:361)at com.huawei.utils.HttpsUtil.doPostFormUrlEncodedGetStatusLine(HttpsUtil.java:223)at com.huawei.service.appAccessSecurity.Authentication.main(Authentication.java:31)原因: 电信在2019-3月之后,将平台的证书做了更换,所以在SSL校验的时候,证书校验不通过,导致了如上问题:解决方法有两种: 1、将ca.jks文件替换成电信平台的,可以从电信平台的java sdk中获取。 2、取消证书校验。方法如下: 打开HttpsUtil.java文件,在HttpsUtil 类中添加如下代码: private TrustManager truseAllManager = new X509TrustManager() { public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; } @Override public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) throws java.security.cert.CertificateException { } @Override public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws java.security.cert.CertificateException { } };将 sc.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);替换为:sc.init(kmf.getKeyManagers(), new TrustManager[] { truseAllManager }, null);如此,便可取消对服务器证书的校验,我们在调试阶段,避免频繁更换证书而影响后续的工作。
-
1、从官网下载的JAVA SDK,使用调测证书的方式,把demo跑通了。SDK的jar包反编译后可以看到根下有调试证书文件。2、android studio新建app工程,把SDK加入工程,参照demo的用法,使用默认的ssl配置,实现了鉴权接口,但是调试的时候,app一直报错:NorthApiException [error_code=1006, error_desc=Ssl config error, please check the certificate path, httpStatusCode=-1, httpReasonPhase=, httpMessage=sunx509 KeyManagerFactory not available]从日志上看好像是证书路径不对,但是证书明明在jar包里面呀。而且这个jar包在电脑上可以运行,请问这是什么原因呢?3、后来我又尝试把证书文件放到assets目录下,显式地指定了证书路径,但还是不行,报告找不到文件
-
[技术干货] 求解答: java.lang.NoClassDefFoundError: Could not initialize class com.obs.services.internal.Constants为什么上传文件再Linux服务器总是报这个异常,在开发环境Windows环境又不会。求解答。java.lang.NoClassDefFoundError: Could not initialize class com.obs.services.internal.Constants
-
测评报告上传到附件中,欢迎小伙伴们指导奥!
-
Maven构建java工程操作hdfs实例腾科教育以为理论+实操为主的教学,带你进入大数据开发基础。每一步都带着你,让你一步一步实现自已的大数据开发梦想。构建maven工程 导入maven类包 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.8.1</version> </dependency> </dependencies>编写Junit单元测试类package net.togogo.hdfsproject; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import org.junit.Before; import org.junit.Test; import java.io.FileNotFoundException; import java.io.IOException; import java.net.URI; public class HdfsClientTest { FileSystem fs = null; @Before public void init() throws Exception { // 构造一个配置参数对象,设置一个参数:我们要访问的hdfs的URI // 从而FileSystem.get()方法就知道应该是去构造一个访问hdfs文件系统的客户端,以及hdfs的访问地址 // new Configuration();的时候,它就会去加载jar包中的hdfs-default.xml // 然后再加载classpath下的hdfs-site.xml Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://192.168.75.129:9000"); /** * 参数优先级: 1、客户端代码中设置的值 2、classpath下的用户自定义配置文件 3、然后是服务器的默认配置 */ conf.set("dfs.replication", "3"); // 获取一个hdfs的访问客户端,根据参数,这个实例应该是DistributedFileSystem的实例 // fs = FileSystem.get(conf); // 如果这样去获取,那conf里面就可以不要配"fs.defaultFS"参数,而且,这个客户端的身份标识已经是hadoop用户 fs = FileSystem.get(new URI("hdfs://192.168.75.129:9000"), conf, "hadoop"); } @Test public void testAddFileToHdfs(){ // 要上传的文件所在的本地路径 Path src = new Path("D:\\stone\\HCNA-AI\\images\\idcard.jpg"); // 要上传到hdfs的目标路径 Path dst = new Path("/togogo/idcard.jpg"); try { fs.copyFromLocalFile(src,dst); System.out.println("文件上传成功..."); } catch (IOException e) { e.printStackTrace(); } } @Test public void testDelFileFromHdfs(){ // 要上传到hdfs的目标路径 Path dst = new Path("/togogo/work"); try { fs.delete(dst,true); System.out.println("文件删除成功..."); } catch (IOException e) { e.printStackTrace(); } } /** * 查看目录信息,只显示文件 * * @throws IOException * @throws IllegalArgumentException * @throws FileNotFoundException */ @Test public void testListFiles() throws FileNotFoundException, IllegalArgumentException, IOException { // 思考:为什么返回迭代器,而不是List之类的容器 RemoteIterator while (listFiles.hasNext()) { LocatedFileStatus fileStatus = listFiles.next(); System.out.println(fileStatus.getPath().getName()); System.out.println(fileStatus.getBlockSize()); System.out.println(fileStatus.getPermission()); System.out.println(fileStatus.getLen()); BlockLocation[] blockLocations = fileStatus.getBlockLocations(); for (BlockLocation bl : blockLocations) { System.out.println("block-length:" + bl.getLength() + "--" + "block-offset:" + bl.getOffset()); String[] hosts = bl.getHosts(); for (String host : hosts) { System.out.println(host); } } System.out.println("--------------为angelababy打印的分割线--------------"); } } /** * 查看文件及文件夹信息 * * @throws IOException * @throws IllegalArgumentException * @throws FileNotFoundException */ @Test public void testListAll() throws FileNotFoundException, IllegalArgumentException, IOException { FileStatus[] listStatus = fs.listStatus(new Path("/")); String flag = "d-- "; for (FileStatus fstatus : listStatus) { if (fstatus.isFile()) flag = "f-- "; System.out.println(flag + fstatus.getPath().getName()); } } }
-
【问题类别】IVR(gsl )【问题现象描述】 因为项目需要调用java接口,然而,查询《IPCC V200R001C80SPC700 GSL流程开发指南》发现 外接java接口调用cell(已弃用),请问GSL还有什么方式可以掉用java接口吗?
-
1、简介 Logstash是一个开源的日志收集管理工具,是一个具有实时管道功能的开源数据收集引擎,Logstash可以动态地将来自不同数据源的数据统一起来,并将数据规范化为自己选择的目的地,清理和大众化所有数据,用于各种高级下游分析和可视化用例。 官方链接:http://www.elastic.co/cn/products/logstash 类别:数据采集2、基础环境类别子项版本获取地址(方法)华为云虚拟机RC3(916)--OSCentOS7.5 Kernel4.14 软件包Java1.8.0 Logstash7.2.0 3、依赖安装要使用Logstash,需要Java7以后的环境,所以首先需要下载对应的JDK环境。查看java版本,运行下面的命令:java -version如果环境已经正常安装java,会出现如下的输出结果:openjdk version "1.8.0_212"OpenJDK Runtime Environment (build 1.8.0_212-b04)OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode) 4、组件编译安装 下载并安装公钥rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch 在/etc/yum.repos.d/目录下创建文件logstash.repo,添加下面配置[logstash-7.x]name=Elastic repository for 7.x packagesbaseurl=https://artifacts.elastic.co/packages/7.x/yumgpgcheck=1gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearchenabled=1autorefresh=1type=rpm-md 接下来安装使用,使用下面的命令来进行安装sudo yum install logstash 版本检查。如果编译成功,会正确显示版本。rpm -qa|grep logstash5、系统配置无6、测试使用如下命令启动服务并查看服务状态。如果为active状态,则表示服务启动成功。systemctl start logstash.servicesystemctl status logstash.service 7、参考信息官方文档指导:https://www.elastic.co/guide/en/logstash/current/installing-logstash.html#package-repositories 8、FAQ无
-
1、简介 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。目前最新版本是9.0。 Tomcat服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。。 官方链接:http://tomcat.apache.org/ 类别:Web服务2、基础环境类别子项版本获取地址(方法)华为云虚拟机RC3(916)--OSCentOS7.5 Kernel4.14 软件包Jdk1.8.0 Tomcat9.0.21 3、依赖安装参考《华为云鲲鹏云服务最佳实践-JDK-1.8.0 安装配置指南》4、组件编译安装下载tomcatwget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.21/bin/apache-tomcat-9.0.21.tar.gz解压tar -xvzf apache-tomcat-9.0.21.tar.gz5、系统配置无6、测试 测试内容:tomcat服务是否正常启动 测试结果:服务正常启动7、参考信息官方文档:http://tomcat.apache.org/tomcat-9.0-doc/index.html8、FAQA:tomcat的默认端口号为8080,如果有其他软件占用了此端口,则会导致tomcat不能启动Q:用FPort等软件查看端口使用情况,然后结束占用端口的进程或配置其改用其它端口
-
1、简介 JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。 类别:工具包2、基础环境类别子项版本获取地址(方法)华为云虚拟机RC3(916)--OSCentOS7.5 Kernel4.14 软件包Jdk11.0.3 3、依赖安装无4、组件编译安装 在yum源中查找jdk列表yum list | grep jdk查出结果:在yum源中进行安装yum install java-11-openjdk.aarch645、系统配置无6、测试测试内容:JDK安装是否成功java -version测试结果:7、参考信息无8、FAQLinux在同时拥有两个jdk的情况下,可以进行两个jdk之间的切换alternatives --config java 输入所需要的jdk版本所属号,即可进行切换
-
测评文件为PDF版,详情查看附件奥!欢迎小伙伴们点评
-
使用工具:keytool gui(可视化keytool工具)1.6 正式版启动该工具需要有jre环境,最好是1.4版本。设置好jre/bin路径,达到在命令行中键入java命令可以出现提示的效果后,运行run.cmd即可启动。启动后界面如下:操作步骤:1、选择File菜单中的New Keystore,新建一个jks格式的keystore,如图2、选择JKS格式,点击OK。出现如下界面:(和第一张图相比,工具栏图标已经可见)3、点击工具栏的导入信任根证书图标(如下图),或按Ctrl+T4、出现如下界面,此时即可选择华为提供的根证书文件执行导入。证书下载点这里5、完成导入工作后,即可将该keystore保存,点击保存按钮后,出现设置Keystore密码的界面,如下图导出的jks文件即可使用了。
-
1 背景介绍 & 效果展示通过OBS JAVA SDK可以实现批量下载文件,如下载文件夹,效果如下。注:有关标准存储、低频访问、归档存储三种存储类型的更多信息,参考链接:https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0050321036.html图1 桶下面有“FunctionGraphDemo-VideoConvert/”为前缀的文件夹图2 把上图中的文件夹下载到本地"C:/software/"目录下2 java代码参考前提:需要先下载OBS最新的JAVA SDK,参考官网链接:https://developer.huaweicloud.com/sdk?OBS,并在自己的项目中导入SDK中的JAR包。 public static void main(String[] args) throws IOException { // 需要将endPoint/ak/sk更新为实际信息 String endPoint = "https://your-endpoint"; String ak = "*** Provide your Access Key ***"; String sk = "*** Provide your Secret Key ***"; // 创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); try { String bucketName = "bucketXXX"; // 需要将bucketName更新为实际信息String fileLocatePrefix = "C:/software/"; // 需要下载到本地哪个目录,这里面举例"C:/software/" ListObjectsRequest request = new ListObjectsRequest(bucketName); // 指定下载"FunctionGraphDemo-VideoConvert/"文件夹 request.setPrefix("FunctionGraphDemo-VideoConvert/"); request.setMaxKeys(500); ObjectListing result;System.out.println("Objects:"); do{ result = obsClient.listObjects(request); for (ObsObject obsObject : result.getObjects()) { System.out.println("\t" + obsObject.getObjectKey()); DownloadFileRequest requestDownload = new DownloadFileRequest(bucketName, obsObject.getObjectKey()); requestDownload.setDownloadFile(fileLocatePrefix+obsObject.getObjectKey()); // 设置分段下载时的最大并发数 requestDownload.setTaskNum(5); // 设置分段大小为10MB requestDownload.setPartSize(10 * 1024 * 1024); // 开启断点续传模式 requestDownload.setEnableCheckpoint(true); try{ // 进行断点续传下载 DownloadFileResult resultDownload = obsClient.downloadFile(requestDownload); }catch (Ob**ception e) {System.out.println("Response Code: " + e.getResponseCode()); System.out.println("Error Message: " + e.getErrorMessage()); System.out.println("Error Code: " + e.getErrorCode()); System.out.println("Request ID: " + e.getErrorRequestId()); System.out.println("Host ID: " + e.getErrorHostId()); } } System.out.println("------------------------------"); request.setMarker(result.getNextMarker()); }while(result.isTruncated()); }}3 附录链接OBS JAVA SDK使用方法,官网参考链接:https://support.huaweicloud.com/sdk-java-devg-obs/zh-cn_topic_0142815558.html
-
项目为springboot框架,在window上调用dll可以正常操作设备,但是部署到linux上遇到如下错误:java: symbol lookup error: /home/device-huawei/lib/libhwpusdk.so: undefined symbol: SSL_load_error_strings 有没有大神指导下,有没有部署在linux上经验分享下!有没有部署注意事项!!!
-
1、简介Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。ActiveMQ可以支持在ARM环境下运行,无需重新编译。可以从官网下载最新的ActiveMQ包进行解压缩、配置、运行。本指南描述了在ARM64、CentOS的环境下安装配置ActiveMQ的过程,可供相关人士参考。2、环境类别版本配置备注ARM测试服务器CentOS7.4arm通用计算增强型 | rc3.xlarge.4 | 4vCPUs | 14GB在华为云通过公测申请3、ActiveMQ安装3.1.下载安装包可以直接使用wget下载wget https://mirrors.tuna.tsinghua.edu.cn/apache/activemq/5.15.9/apache-activemq-5.15.9-bin.tar.gz或者在windows环境下载,上传到Linux服务器http://www.apache.org/dyn/closer.cgi?filename=/activemq/5.15.9/apache-activemq-5.15.9-bin.tar.gz&action=download3.2.解压缩包tar -zxvf apache-activemq-5.15.9-bin.tar.gz3.3.配置环境变量vi /etc/profile (在合适的位置添加下面变量)export ACTIVEMQ_HOME=/home/cyw/activemq/apache-activemq-5.15.9 (activemq安装目录)export ACTIVEMQ_BIN=$ACTIVEMQ_HOME/binexport PATH=${PATH}:${ACTIVEMQ_BIN}3.4.环境变量生效与测试Centos里执行以下命令: source /etc/profile3.5.安装java环境yum install java3.6.设置开机启动1. 将ActiveMQ安装目录下的bin中的activemq文件拷贝到修改init.d/目录下2. vi /etc/init.d/activemq 内容添加环境变量:ACTIVEMQ_HOME=/home/cyw/activemq/apache-activemq-5.15.9(activemq安装目录)3.修改activemq执行权限,init.d目录下输入chmod +x activemq4.设置activemq开机启动chkconfig --add activemqchkconfig --list (查看activemq服务)5. 执行命令开启activemq/关闭activemq/查看activemq状态开启activemq: service activemq start关闭activemq:service activemq stop查看状态: service activemq status4、测试4.1.测试执行cd apache-activemq-5.15.9/bin (进入)./activemq start (开启activemq)./activemq status (查看状态,显示isrunning即成功运行)5、参考信息 ActiveMQ安装指导: https://www.2cto.com/kf/201806/753069.htmlhttps://www.cnblogs.com/lucia557/p/7602155.html
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签