小编AD.*_*AD.的帖子

如何在java程序中禁用堆栈跟踪生成?

我想禁用在抛出异常时生成的堆栈跟踪.我用过,

Runtime.getRuntime().traceInstructions(false);
Runtime.getRuntime().traceMethodCalls(false);
Run Code Online (Sandbox Code Playgroud)

但我仍然可以看到跟踪生成.你怎么能这样做?此外,我需要检测是否有人正在调试我的课程.

我想禁用所有异常跟踪.我不能使用混淆,因为我的产品是一个将用于开发的SDK.我还提供了Runtime,当人们想要部署使用我的SDK构建的应用程序时,会使用它.我的要求是任何使用我的运行时jar的人都不应该能够调试编写的代码...或者至少我会通过避免从我的运行时jar生成堆栈跟踪来使调试变得困难.

我发现的一种方法是所有来自我的运行时jar的异常,我只是捕获它们并在异常对象上设置一个空的StackTraceElement数组并重新抛出它...

为何如此要求?假设您使用我的SDK开发应用程序.(SDK jar无法与您的应用程序捆绑在一起..我已经限制了它,那就是最终:) !!)现在要在客户端的机器上运行您的应用程序,您(或客户端)需要安装客户端计算机上的运行时并运行您的应用程序.现在如果你的客户使用我的Runtime jar开始开发他自己的应用程序怎么办 这对我的生意构成威胁....这就是为什么这个可怕的要求.

为什么禁用堆栈跟踪?
通过禁用堆栈跟踪生成或方法调用跟踪生成我想用我的Runtime jar开发代码很困难,这就是为什么我以这种方式开始我的问题...建议一些其他解决方案来实现这样的要求......

java debugging stack-trace

7
推荐指数
3
解决办法
1万
查看次数

任何人都可以为我提供一个类似SOUNDEX的SQL函数,可以正确地用于INDIAN NAMES吗?

我需要从我的数据库(mysql)中搜索印度名称.我尝试了SOUNDEX功能,但它失败了长印度的名字.

mysql sql search full-text-search search-engine

6
推荐指数
1
解决办法
1396
查看次数

HttpServletRequest.getRemotePort()返回在同一台机器上收到的每个http请求的不同端口?

我需要识别注册到我的服务的客户端的远程IP和端口.此外,当客户端Web应用程序关闭时,它会从我的Web服务中取消注册.我正在使用HttpServletRequest.getRemoteAddress()HttpServletRequest.getRemotePort()来识别客户端.

但问题是,当我在同一台机器上测试时,我从同一个客户端Web应用程序获得不同的端口.

我在GlassFish上运行JAX-WS Web服务,Client Web App也安装在同一容器上.另外,我正在运行Fedora 14 VBox VM.

java servlets

3
推荐指数
1
解决办法
2791
查看次数