我在部署在glassfish上的spring web应用程序中使用System.loadLib()来在我的应用程序中加载.so(jni共享库)...但是当System.loadLibrary执行服务器时突然停止服务器中没有任何异常登录!
有什么问题? 我的代码:
@Controller
@RequestMapping(value = "/getdata", method = RequestMethod.POST)
public class temperatureController {
@RequestMapping(value = "/temp" , method = RequestMethod.GET)
public @ResponseBody
float getTemperature(){
System.err.print("beforeeeeeeeeeeeN");
NativeClass n = new NativeClass();
System.err.print("beforeeeeeeeeeeeLoadLib");
try {
System.loadLibrary("NativeClass");
System.err.print("LoadedintempClass");
}
catch (Throwable e){
System.err.print("not loaded in temp class");
e.printStackTrace();
}
System.err.print("afteeeeeeeerLoadLib");
float temp = n.getTemperature(); // invoke the native method
System.err.print("tttttttttt");
System.err.print(temp);
return temp ;
}
服务器日志:
[2016-05-30T19:40:36.364+0000] [glassfish 4.1] [SEVERE] [] [] [tid: _ThreadID=27 _ThreadName=Thread-9] [timeMillis: 1464637236364] [levelValue: 1000] [[
beforeeeeeeeeeeeN]]
[2016-05-30T19:40:36.391+0000] [glassfish 4.1] [SEVERE] [] [] [tid: _ThreadID=27 _ThreadName=Thread-9] [timeMillis: 1464637236391] [levelValue: 1000] [[
beforeeeeeeeeeeeLoadLib]]
答案 0 :(得分:0)
很可能是由库引起的分段错误,它会导致整个JVM崩溃。尝试使用bin/asadmin start-domain --verbose
从命令行运行GlasssFish以在同一控制台窗口中继续运行。如果是这种情况,您可以在控制台中看到SEGMENTATION FAULT
。