我在这里面临一个难题.
我开发的一个应用程序是加载JAXP 的DocumentBuilderFactory类的错误实现.后来推断这种行为是由不同团队/公司构建的不同应用程序中的另一个类产生的.通过包含类似于下面的静态块,所述类在加载时更改了首选的DocumentBuilderFactory类:
static
{
System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "a new factory");
}
Run Code Online (Sandbox Code Playgroud)
如果使用DocumentBuilderFactory.newInstance方法的Javadocs,那么当调用newInstance方法时,上述代码负责更改返回给所有应用程序的解析器实现是很明显的.
应用了一个修补程序,它纠正了这个问题,但它让我问这个问题 - 如何确定哪个类在运行时执行System.setProperty调用?
我们已经生成了一个OpenJDK的自定义版本,其中包含一个修改过的System类,它负责确定罪魁祸首,原因很简单,我们无法访问部署在服务器上的所有应用程序的所有源代码.但这可能只是因为生产环境在其环境中得到了复制.因此,问题也可以解释为 - 如何在生产环境中确定哪个类在运行时执行System.setProperty调用?
我知道如何在运行时使用-Xmx -Xms,有没有办法让编译器分配更多的ram.我的电脑上有2场演出.我不使用IDE只是textpad.我正在尝试创建一个10,000,000位的BigInteger并对其进行操作.我尝试创建一个StringBuffer和ensureCapacity(10000000),它不会编译.是否有一个类可以用来告诉编译器我需要更多ram才能编译,或者编译时?我确实读过有关RunTime方法的内容,并且我将继续乘以BigInteger并观察堆.我尝试将字符串嵌入代码"1000000"+等10,000,000个数字,它也不会编译.
哪个jdbc驱动程序应该用于连接oracle 8i?我正在使用jdk 1.6和tomcat.
我想知道你是否曾经在网站上使用SQL注入进行道德黑客攻击.
你用过什么技巧/技巧(尤其是mysql)?
我有问题从jar运行主类.
Ant脚本生成了以下文件夹:
MyProject(Somewhere in C:)
|
|
|____configuration(this contains properties/XML file)
|
|____dist(contains MyProject.jar)
|
|____lib(contains all other jars)
|
|____run(contains batch file to run MyProject.jar)
Run Code Online (Sandbox Code Playgroud)
在内部运行文件夹中,我有一个批处理文件,其内容如下:
java -jar ../dist/MyProject.jar;../lib/*.jar com.my.test.MainTest
Run Code Online (Sandbox Code Playgroud)
有人可以指导我.我只想去运行文件夹并双击.bat文件并运行应用程序.
我正进入(状态
Exception in thread "main" java.lang.NoClassDefFoundError: MyProject/jar
Run Code Online (Sandbox Code Playgroud)
更新
新的错误是:
The java class is not found: com.microsoft.sqlserver.jdbc.SQLServerException
Run Code Online (Sandbox Code Playgroud)
谢谢...
我有以下场景,
public void someEjbMethod1()
{
for (int i=0; i=10; i++)
{
em.merge(arr[i]);
em.flush();
}
}
Run Code Online (Sandbox Code Playgroud)
我需要分别合并 ( arr[i]) 的每个对象。因为上面的代码将arr[i]在函数末尾提交所有实例。
我正在考虑执行以下操作:
public void someEjbMethod1()
{
for (int i=0; i=10; i++)
{
saveObj(arr[i]);
}
}
// should I use a transaction attribute here??
public void saveObj(SomeObject obj)
{
em.merge(arr[i]);
em.flush();
}
Run Code Online (Sandbox Code Playgroud)