0

我正在尝试查找哪个 .jar 检测到此错误,以便找出问题所在。这是在 hyperion 服务器上运行的。

[2015-03-15T15:18:35.352+08:00] [Planning0] [WARNING] [] [oracle.EPMHSP.calcmgr_execution] [tid: 144] [userId: <anonymous>] [ecid: 00iRyJJB65hDOd5LzQL6iW000ly40016YL,0:1] [APP: PLANNING#11.1.2.0] [URI: /HyperionPlanning/faces/RunTimePromptTF/BgImage] [SRC_CLASS: com.hyperion.planning.adf.artifact.datacontrol.HspManageArtifactsDC] [SRC_METHOD: executeCalcScript] Error detected while attempting to run job Test_Rule [[
com.hyperion.planning.HspRuntimeException: Error detected while attempting to run job: Test_Rule.
  at com.hyperion.planning.HspAsyncJobsManager.completeJobExceution(HspAsyncJobsManager.java:101)
  at com.hyperion.planning.db.HspFMDBImpl$CalcMgrWrapper.runRule(HspFMDBImpl.java:10411)
  at com.hyperion.planning.db.HspFMDBImpl.runHBRRule(HspFMDBImpl.java:2254)
  at com.hyperion.planning.db.HspFMDBImpl.runCalcScript(HspFMDBImpl.java:2218)
  at com.hyperion.planning.HyperionPlanningBean.runCalcScript(HyperionPlanningBean.java:4028)
  at com.hyperion.planning.adf.artifact.datacontrol.HspManageArtifactsDC.executeCalcScript(HspManageArtifactsDC.java:3518)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  at java.lang.reflect.Method.invoke(Method.java:597)
  at oracle.adf.model.binding.DCInvokeMethod.invokeMethod(DCInvokeMethod.java:677)
  at oracle.adf.model.bean.DCBeanDataControl.invokeMethod(DCBeanDataControl.java:445)
4

3 回答 3

1

如果您运行的是 linux/unix 风格,我通常会通过以下 bash 脚本找到 jar:

for i in $( find LIB_FOLDERS -iname *.jar | xargs ); do 
    ( zipinfo $i | grep -i PATTERN ) && echo $i ; done

LIB_FOLDERS找到你的 jar 的地方在哪里,并且是PATTERN你正在寻找的类的名称的一个特征部分。这将打印与该模式匹配的所有 jar 文件的名称。大多数 IDE 允许您“在类路径中搜索一个类”而无需所有命令行麻烦,但我不知道您是否将所有源代码都加载到一个文件中。

于 2015-03-15T09:50:52.313 回答
0

在 linux 系统上,我使用以下内容创建 ~/bin/findjar,然后 chmod 700 并将 ~/bin 添加到我的 PATH 中:

#!/bin/bash

# Usage: findjar <classname or string to search for> [path to search under]
#
class=$1
path=$2

if [[ "$path" = "" ]]; then
  path=.
fi
echo searching for $class in $path
for f in `find $path -name "*.jar"`; do
  match=$(jar tf $f | grep $class);
  if [[ -n "$match" ]]; then
    echo
    echo $f;
    echo "$match"
  fi;
done
于 2016-02-09T19:37:19.207 回答
0

使用 JarScan。这是我最喜欢的工具之一,用于搜索埋在某个目录中某个 jar 中的类。适用于任何平台,简单易用:https ://java.net/projects/jarscan/pages/Tutorial/text

于 2016-02-09T19:49:36.750 回答