• [产品体验官] 华为云 GES 图引擎服务体验及评测by陈晓—成都—java开发
    测评报告在附件中,有什么思想的碰撞欢迎留言奥!
  • [技术干货] 北向JAVA应用调试(对接电信平台失败)——取消证书校验
    关于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);如此,便可取消对服务器证书的校验,我们在调试阶段,避免频繁更换证书而影响后续的工作。
  • [问题求助] JAVA 北向sdk在android app中使用提示找不到证书
    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
  • [产品体验官] 华为云EI基础平台ModelArts体验任务B测评报告 by 陈晓—成都—java开发
    测评报告上传到附件中,欢迎小伙伴们指导奥!
  • [热门活动] Maven构建java工程操作hdfs实例
    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());         }     } }
  • [已解决问题归档] 【入驻式求助】GSL 如何java接口?
    【问题类别】IVR(gsl )【问题现象描述】 因为项目需要调用java接口,然而,查询《IPCC V200R001C80SPC700 GSL流程开发指南》发现 外接java接口调用cell(已弃用),请问GSL还有什么方式可以掉用java接口吗?
  • [管理与监控] 【华为云鲲鹏云服务最佳实践】【工具篇】第009期 logstash 7.2 安装配置指南
    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无
  • [中间件] 【华为云鲲鹏云服务最佳实践】【Web篇】第001期 Tomcat 9.0.21 安装配置指南
    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等软件查看端口使用情况,然后结束占用端口的进程或配置其改用其它端口
  • [Java] 【华为云鲲鹏云服务最佳实践】【语言篇】第004期 OpenJDK-11.0.3 安装配置指南
    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版本所属号,即可进行切换
  • [产品体验官] 华为云SQL Server产品体验及评测 by 陈晓—成都—java开发
    测评文件为PDF版,详情查看附件奥!欢迎小伙伴们点评
  • [技术干货] 如何将PEM证书转换成java用的JKS
    使用工具: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文件即可使用了。
  • [技术干货] OBS JAVA SDK 实践8:批量下载文件(e.g 下载文件夹)
    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
  • [问题求助] IPC SDK-java开发后部署到linux遇到问题,请大神帮助,在线等,急急急!!!!!
             项目为springboot框架,在window上调用dll可以正常操作设备,但是部署到linux上遇到如下错误:java: symbol lookup error: /home/device-huawei/lib/libhwpusdk.so: undefined symbol: SSL_load_error_strings        有没有大神指导下,有没有部署在linux上经验分享下!有没有部署注意事项!!!
  • [中间件] 【鲲鹏翱翔】消息中间件02-ActiveMQ移植指南
    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
总条数:2294 到第 页
上滑加载中