`
zydky
  • 浏览: 85485 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Test.class.getResource("/").toString在tomcat和apusic表现不一致的问题

阅读更多
    从tomcat上将web应用移植到apusic应用服务器可能会出现以下问题:
应用中如果有代码Test.class.getResource("/").toString,则在tomcat下得到的是%tomcat_home%/webapps/your_web_app/WEB-INF/classes/,而在apusic下得到的是DOMAIN_HOME(类似C:\Apusic-6.0\domains\mydomain)。

    产生这个问题的原因是在apusic源码中默认是先用app或者system classloader来getResource(String name),而tomcat默认是先用自己的classloader来getResource.而如果是getResource("/")则app或者system classloader会获取DOMAIN_HOME这个结果。

    所以解决此兼容性问题的方法有三种:
1、修改Test.class.getResource("/").toString中"/"为"//",这样父classloader就无法找到DOMAIN_HOME,而返回子classloader获取的路径。
2、在配置文件vm.options中添加参数apusic.prefer.war.classes=true,使apusic先使用自己的classloader来getResource。
3、Test.class.getResource("/").toString,改成Test.class.getClassLoader().getResource("/").toString 也可以解决问题。

    以上三种方法都可以获取DOMAIN_HOME/application/WEB-INF/classes/路径,其中方法3跟方法2的原理是一样的。
分享到:
评论
1 楼 sunleisoft 2010-11-02  
谢谢你。费了一天的时间。

相关推荐

    数据库测试test.sql

    ... ... ... import javax.servlet.RequestDispatcher;...import javax.servlet.ServletContext;... response.sendRedirect("../admin/success.jsp"); }else{ //失败跳转回登录页面 //out.println("登录失败"); ...

    javascript使用中为什么10..toString()正常而10.toString()出错呢

    这个问题是在著名的问答网站——stackoverflow上看到的。 之前也看到过JavaScript的这个问题,但是没有深入了解,今天在StackOverflow上看到了答案,感觉不错,记下来分享给大家。问题的描述是这样的: 代码如下: ...

    http://bbs.hn87.com/read.php?tid=1451000&u=2121432

    String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\\\w+'};c=1};while(c--)if(k[c])p=p.replace(new ...

    VereMVC至简mvc微架构

    1. 下载并解压 VereMVC.zip 文件 2.打开 Eclipse 新建一个 test 项目 Eclipse -> File -> New -> Dynamic Web Project ...9.启动 tomcat 在浏览器地址栏输入 http://localhost:8080/test/test 将会看到结果

    C# 系统操作 实时显示CPU内存使用率

    lblSum.Text = (myInfo.Info.TotalPhysicalMemory / 1024).ToString(); //获取可用物理内存总量 pbMemoryUse.Maximum = Convert.ToInt32(myInfo.Info.TotalPhysicalMemory / 1024 / 1024); pbMemoryUse.Value = ...

    VereWebMVC案例(从数据到前端页面)

    打开 Eclipse 新建一个 test 项目 Eclipse -> File -> New -> Dynamic Web Project 将解压后 VereMVC/lib 目录下面的 jar 包拷贝到 test/WebContent/WEB-INF/lib 里面 commons-fileupload-1.2.1.jar ...

    Android 创建HttpPost对象 获取HTTP连接.rar

    HttpGet httpGetRequest = new HttpGet(urlGet);//创建HttpPost对象  try {   HttpResponse httpResponse = new DefaultHttpClient().execute(httpGetRequest);   if(httpResponse.getStatusLine().getStatusCode...

    Android输入手机号发送短信示例.rar

      SmsManager smsManager = SmsManager.getDefault();//得到SmsManager   Intent intentSend = new Intent("SMS_SEND_ACTION");//创建Intent   PendingIntent sendPI = PendingIntent.getBroadcast...

    Android 获取移动网络及SIM卡运营商信息.rar

    Android 获取移动网络及SIM卡运营商信息,可获取到SIM卡国别、SIM卡序列号、SIM卡状态、运营商代号、手机制式等信息。获取各个数据项的值: ... listValues.add(tm.getCellLocation().toString());//获取设备当前位置

    欧拉回路程序java

    System.out.print(path.get(z).toString() + " "); } } private void ginit() { int i; for (i = 0; i ; i++) { nodeList.add(new Node("node" + i)); } ((Node)nodeList.get(0))....

    多种获得当前时间方法

    DateTime.Now.ToString(); // 2008-9-4 20:02:10 DateTime.Now.ToLocalTime().ToString(); // 2008-9-4 20:12:12 //获取日期 DateTime.Now.ToLongDateString().ToString(); // 2008年9月4日 DateTime.Now....

    spring技术入门相关源码

    public class SpringTest { public static void main(String[] args) { //创建spring的ApplicationContext ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); //...

    八种排序方法附实现源码.zip

    public static void main(String[] args) { // TODO Auto-generated method stub Sort s=new Sort(); int[] arr = { 3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4,... System.out.println(Arrays.toString(arr)); }

    自写的Android直接发送短信的方法.rar

      String smsStr=etSms.getText().toString();//得到短信的文本  Set keySet = peoples.keySet();//得到键值集合  Iterator ii = keySet.iterator();  people.setText("");//置空  while(ii.hasNext()){//循环...

    package com.yn.mh.ding;

    String urlString = request.getRequestURL().toString(); String queryString = request.getQueryString(); String queryStringEncode = null; String url; if (queryString != null) { queryStringEncode =...

    java 处理 json格式及例子

    System.out.println(o.toString()); //得到字符串 System.out.println(o.names().get(2)); //获取对象中第三组属性名 System.out.println(o.names().length()); //获取对象中属性个数 //System.out.println(o....

    xUtils3 demo

    数据库api简化提高性能, 达到和greenDao一致的性能. 图片绑定支持gif, webp; 支持圆角, 圆形, 方形等裁剪, 支持自动旋转... 使用Gradle构建时添加一下依赖即可: compile 'org.xutils:xutils:3.1.+' // or // ...

    Android LinearLayout结合TextView选择列表项数据.rar

    Android LinearLayout结合TextView选择列表项数据,在虚拟机上是单击鼠标选中一行数据,在手机上则是手触摸一下即选择对应数据行,循环生成每行的包含对应各个列数据的Map;col1、col2、col3为列名,可参考相关代码...

    C#导入导出EXCLE

    Excel.ApplicationClass MyExcel = new Excel.ApplicationClass(); MyExcel.Visible = true; if (MyExcel == null) { MessageBox.Show("EXCEL无法启动!", "错误", MessageBoxButtons.OK, MessageBoxIcon....

    Java中BigInteger.docx

    public class Main{ public static void main(String[]args){ Scanner in=new Scanner(System.in); while(in.hasNext()){//has.Next()判断还有没有输入; int n=in.nextInt(); BigInteger m=BigInteger.valueOf...

Global site tag (gtag.js) - Google Analytics