开发者中心

故障排除

概述

这个章节介绍了常见的问题和解决方法。

SSL 或者证书错误

你可以在Java客户端库使用HTTP和HTTPS。 如果使用HTTPS, 你需要导入QuarkIoE产品证书到你的Java runtime运行环境。下载证书,然后再命令行运行下面的命令来导入证书:



  $JAVA_HOME/bin/keytool -import -alias cumulocity -file cumulocity.com.crt -storepass changeit
                      

当询问"Trust this certificate? [no]:"回复"yes"。 用下面的参数来运行Java:


  -Djavax.net.ssl.trustStore=<<home directory>>/.keystore
                      

如果你用Eclipse/OSGi, 在"Run"菜单里打开"Run Configurations..." 对话框。 双击"OSGi Framework", 在右边将打开"Arguments" 标签页。 在"VM arguments" 文本输入框里,加入上面的参数。

由于Java自带受信的根证书集,你可能仍然会得到错误的信息:


  java.security.cert.CertificateException: Certificate Not Trusted
                      

这种情况下, 通过下面的方式,确保Go Daddy Certificate Authority (CACert)对你的Java环境是可用的:


  keytool -import -v -trustcacerts -alias root -file gd_bundle.crt -keystore $JAVA_HOME/lib/security/cacerts
                      

gd_bundle.crt 可以直接从 GoDaddy repository下载。

我安装SDK的时候, Eclipse会报兼容性问题。

确保你按照指南里描述的使用"Target Platform"参数选择页面来安装SDK。 "Install New Software"安装软件到你使用的Eclipse IDE, 但我们需要安装SDK 作为一个单独的服务器软件。

在运行agent或者应用时候,出现"期望在表索引中找到一个对象"。

这个错误的出现时由于特定Eclipse版本的BUG。 解决方法是从主菜单里选择"Run",然后"Run Configurations ..."。在左侧,选择你使用的启动配置, 例如, "OSGi Framework"。 在右侧, 点击"Arguments"标签页。添加" -clean"到"Program Arguments",然后click "Apply"。

agent或者应用未启动。

在启动配置里,检查所有必须的plug-ins都被选上。 转到"Run", "Run Configurations" ,然后选择"OSGi Framework"启动配置。点击"Select All" ,然后再尝试运行。

检查必须的plug-ins是否启动。当应用或者agent运行时, 在控制台输入"ss"然后按return键。 所有列出的plug-ins 显示"ACTIVE"或者"RESOLVED"状态。

检查你是否使用正确的目标平台。在参数设定里转到"Target Platform"页面,查看"Quarkioe runtime"是否被选上。

agent不被编译, 我得到"Access Restriction" 消息。

这个错误是导入的包丢失造成的。转到项目Manifest文件的"Dependencies" 标签页, 在导入包的部分,查看包含访问限制的方法的包的类型是否出现。

打开方法的声明你可以找到包 (右键->Open Declaration)。

启动一个应用时,我得到"address already in use"消息。

查看应用的另外一个实例是否在运行。在控制台工具栏(终端图标)上,点击"Display Selected Console" 图标来浏览各个控制台。 点击工具栏上的红色停止按钮来终止其他的运行的实例。

在Unix/MacOSX中, 你也可以用lsof来查看哪个进程在使用特定的端口,例如看哪个进程正在使用TCP 8080端口,输入下面的命令:


  lsof -i tcp:8080
                      

返回类似下面的信息:


  COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 12985 pitchfor 45u IPv6 0x077c76d0 0t0 TCP *:8080 (LISTEN)
                      

因此进程12985 正在使用那个端口,如果需要可以停掉这个进程。