新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     >>计算机科学论坛<<     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论Semantic Web(语义Web,语义网或语义万维网, Web 3.0)及相关理论,如:Ontology(本体,本体论), OWL(Web Ontology Langauge,Web本体语言), Description Logic(DL, 描述逻辑),RDFa,Ontology Engineering等。
    [返回] 计算机科学论坛W3CHINA.ORG讨论区 - Web新技术讨论『 Semantic Web(语义Web)/描述逻辑/本体 』 → 於JSP中加入Jena的程式,發生Error.. 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 4773 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 於JSP中加入Jena的程式,發生Error.. 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     vampire6211 美女呀,离线,快来找我吧!
      
      
      等级:大一(猛啃高等数学)
      文章:5
      积分:101
      门派:XML.ORG.CN
      注册:2005/12/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给vampire6211发送一个短消息 把vampire6211加入好友 查看vampire6211的个人资料 搜索vampire6211在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看vampire6211的博客楼主
    发贴心情 於JSP中加入Jena的程式,發生Error..

    各位大大,我有jena的程式問題想請教,詳情如下:
    我於JSP中測試應用jena所提供的api.... 但卻發生錯誤....看起來似乎是檔案路徑(如下的紅色字體)的問題...
    我的JSP程式內容如下:
    <%@page language="java" contentType="text/html; charset=big5" import="ontoERP.*, com.hp.hpl.jena.rdf.model.*, com.hp.hpl.jena.rdql.*, java.sql.*, oracle.jdbc.driver.*,java.io.*, java.util.*"%>

    <%
      request.setCharacterEncoding("big5");
      String in_keyword = request.getParameter("T_Keyword");
    %>

    <html>

    <head>
    <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <meta http-equiv="Content-Type" content="text/html; charset=big5">
    <title>查詢結果</title>
    </head>

    <body>

    <p align="center"><u><b><font size="6" color="#0000FF" face="標楷體">查詢結果</font></b></u></p>
    <p align="center"> </p>


    <%
        try
        {
            Model model = ModelFactory.createDefaultModel();

            model.read("C:\\Program Files\\Apache Group\\Tomcat 4.1\\webapps\\ontoWeb\\ontology\\Develop_FAQs_20050321.rdf","");

            model.listStatements();

        }
        catch (Exception ex)
        {
           out.println("Exception: "+ex);
           //System.err.println("Exception: "+ex) ;
           //ex.printStackTrace(System.err) ;
        }
    %>

    </body>
    </html>

    執行後,發生的error:
    Exception: com.hp.hpl.jena.shared.JenaException: rethrew: java.net.MalformedURLException: unknown protocol: c

    請有經驗的大大可否幫我解答....感激不盡.....謝謝!!


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/8 0:05:00
     
     jpz6311whu 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      等级:研三(收到微软亚洲研究院的Offer了)(版主)
      文章:1718
      积分:10610
      门派:W3CHINA.ORG
      注册:2005/4/12

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jpz6311whu发送一个短消息 把jpz6311whu加入好友 查看jpz6311whu的个人资料 搜索jpz6311whu在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jpz6311whu的博客2
    发贴心情 
    file:C:\\Program Files\\Apache Group\\...
    or
    file:/D:/Program Files//...
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/8 3:05:00
     
     jiexincao 帅哥哟,离线,有人找我吗?
      
      
      威望:6
      等级:计算机学士学位
      文章:394
      积分:2379
      门派:XML.ORG.CN
      注册:2005/1/27

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jiexincao发送一个短消息 把jiexincao加入好友 查看jiexincao的个人资料 搜索jiexincao在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jiexincao的博客3
    发贴心情 
    其实也可以使用相对路径:
    “ontology\\Develop_FAQs_20050321.rdf”(可能是这个,建议再试试)
    这样的话程序移植性好一点。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/8 11:55:00
     
     vampire6211 美女呀,离线,快来找我吧!
      
      
      等级:大一(猛啃高等数学)
      文章:5
      积分:101
      门派:XML.ORG.CN
      注册:2005/12/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给vampire6211发送一个短消息 把vampire6211加入好友 查看vampire6211的个人资料 搜索vampire6211在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看vampire6211的博客4
    发贴心情 
    謝謝各位大大的建議...
    但我依照以上所建議的方式,結果都一樣會有Error....
    例如:我改成 model.read("ontology\\Develop_FAQs_20050321.rdf","");
    但出現以下錯誤:
    Exception: com.hp.hpl.jena.shared.JenaException: rethrew: java.net.MalformedURLException: no protocol: ontology\Develop_FAQs_20050321.rdf

    我是用Tomcat 4.1的版本,我在想這是否和server.xml或web.xml的設定是否有關係呢(即以某個資料夾為基本目錄,所以讀取檔案路徑是以此目錄為目標來設定其相對路徑)?這只是我的猜想...但我不知若真是如此,那我該怎麼作修改設定呢??
    謝謝各位大大!!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/8 21:11:00
     
     jpz6311whu 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      等级:研三(收到微软亚洲研究院的Offer了)(版主)
      文章:1718
      积分:10610
      门派:W3CHINA.ORG
      注册:2005/4/12

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jpz6311whu发送一个短消息 把jpz6311whu加入好友 查看jpz6311whu的个人资料 搜索jpz6311whu在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jpz6311whu的博客5
    发贴心情 
    java.net.MalformedURLException: no protocol: ontology\Develop_FAQs_20050321.rdf
    这个说得很清楚,MalformedURLException是说不符合URL语法规范,no protocol是说没有协议,比如一般url有http://协议,ftp://协议什么的,如果是本地硬盘上的,应该是file:协议。

    因此:
    file:E:\\workplace\\ontology\\workspace\\TG\\src\\abc.owl
    这个在我写的程序里面运行过,没有问题的
    楼主照着写一个吧。。。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/8 22:01:00
     
     jiexincao 帅哥哟,离线,有人找我吗?
      
      
      威望:6
      等级:计算机学士学位
      文章:394
      积分:2379
      门派:XML.ORG.CN
      注册:2005/1/27

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jiexincao发送一个短消息 把jiexincao加入好友 查看jiexincao的个人资料 搜索jiexincao在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jiexincao的博客6
    发贴心情 
    String file = "../../ontology/pub.owl";
          Model data = ModelFactory.createDefaultModel();
          Model model = ModelFactory.createDefaultModel();
          InputStream in ;
         try{
             in = FileManager.get().open( file );
             data.read(in, "");
         }
         catch (Exception e ){
         }
    我以前的代码片段,当时是没有问题的。

    web应用程序中我坚持涉及文件路径的地方使用相对路径,除非你的程序只是写了在本机用,而且只是短期用!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/8 22:32:00
     
     jpz6311whu 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      等级:研三(收到微软亚洲研究院的Offer了)(版主)
      文章:1718
      积分:10610
      门派:W3CHINA.ORG
      注册:2005/4/12

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jpz6311whu发送一个短消息 把jpz6311whu加入好友 查看jpz6311whu的个人资料 搜索jpz6311whu在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jpz6311whu的博客7
    发贴心情 
    jiexincao说得没错,相对路径好要一点,也可以使用java.lang.Class.getResourceAsStream(java.lang.String)直接读取jar包内的资源,那样更方便了,当然要先把rdf/owl文件打进包。

    事实上,楼主用的方法是:
    Model read(java.lang.String url, java.lang.String lang)  
    我看了一下源代码,执行路径是这样的:
    Model.java
        public Model read(String url, String lang)  {
            readerFactory. getReader(lang) .read(this, url);
            return this;
        }
    JenaReader.java
        public void read(Model m, String url) throws JenaException {
            try {
                URLConnection conn = new URL(url).openConnection();
                String encoding = conn.getContentEncoding();
                if (encoding == null)
                    read(m, conn.getInputStream(), url);
                else
                    read(m, new InputStreamReader(conn.getInputStream(),
                            encoding), url);
            } catch (FileNotFoundException e) {
                throw new DoesNotExistException(url);
            } catch (IOException e) {
                throw new JenaException(e);
            }
        }
    事实上它是用的url的connection,当然这个url可以是本地file协议的,总之是要符合url规范。

    而jiexincao用的api是:
    Model read(java.io.InputStream in, java.lang.String base)  
    本身第一个参数就是使用的本地文件系统的FileinputStream,不存在协议的问题,所以当然可以使用相对路径。

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/8 23:12:00
     
     vampire6211 美女呀,离线,快来找我吧!
      
      
      等级:大一(猛啃高等数学)
      文章:5
      积分:101
      门派:XML.ORG.CN
      注册:2005/12/6

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给vampire6211发送一个短消息 把vampire6211加入好友 查看vampire6211的个人资料 搜索vampire6211在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看vampire6211的博客8
    发贴心情 
    謝謝以上各位大大的指正...
    不過我試了好多種方法,還是不行...
    我測試過的如下:
    <%
        try
        {
           //String s1 = "C:\\Program Files\\Apache Group\\Tomcat 4.1\\webapps\\ontoWeb\\ontology\\Develop_FAQs_20050321.rdf";
           //String s1 = "Develop_FAQs_20050321.rdf";
           //String s1 = application.getRealPath("/Develop_FAQs_20050321.rdf");
           //String s1 = "ontology\\Develop_FAQs_20050321.rdf";     //不行!!
           String s1 = "file:C:\\Program Files\\Apache Group\\Tomcat 4.1\\webapps\\ontoWeb\\ontology\\Develop_FAQs_20050321.rdf";    //檔案名稱、目錄名稱或磁碟區標籤語法錯誤
           //String s1 = "file:/C:/Program Files//Apache Group//Tomcat 4.1//webapps//ontoWeb//ontology//Develop_FAQs_20050321.rdf";  // 不行!!
           //String s1 = "file:\\C:\\Program Files\\Apache Group\\Tomcat 4.1\\webapps\\ontoWeb\\ontology\\Develop_FAQs_20050321.rdf";//檔案名稱、目錄名稱或磁碟區標籤語法錯誤
           //String s1 = "file:/C:\\Program Files\\Apache Group\\Tomcat 4.1\\webapps\\ontoWeb\\ontology\\Develop_FAQs_20050321.rdf";
           //String s1 = "../Develop_FAQs_20050321.rdf";
           //String s1 = "C:\Program Files\Apache Group\Tomcat 4.1\webapps\ontoWeb\ontology\Develop_FAQs_20050321.rdf";              //不行!!
           //String s1 = "C://Program Files//Apache Group//Tomcat 4.1//webapps//ontoWeb//ontology//Develop_FAQs_20050321.rdf";
           //String s1 = "http://127.0.0.1:8080/ontoWeb/ontology/Develop_FAQs_20050321.rdf";                                         // 檔案名稱、目錄名稱或磁碟區標籤語法錯誤
           //String s1 = "file:/C:/Program Files/Apache Group/Tomcat 4.1/Develop_FAQs_20050321.rdf";

           Model model = ModelFactory.createDefaultModel() ;
           model.read(new FileInputStream(s1),null);
                
           //model.listStatements();
           } catch (Exception ex)
          {
             out.println("Exception: "+ex);
             //System.err.println("Exception: "+ex) ;
             //ex.printStackTrace(System.err) ;
          }
    %>

    以上是我測試過的路徑指定方式,但都有Error.....
    不是出現"檔案名稱、目錄名稱或磁碟區標籤語法錯誤"....
    不然就是"org.apache.jasper.JasperException: Unable to compile class for JSP"....等等...
    我真的被搞糊塗了.....
    還是說我還要import那些class??
    請各位大大指正....
    謝謝!!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/11 2:07:00
     
     jpz6311whu 帅哥哟,离线,有人找我吗?
      
      
      
      威望:9
      等级:研三(收到微软亚洲研究院的Offer了)(版主)
      文章:1718
      积分:10610
      门派:W3CHINA.ORG
      注册:2005/4/12

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jpz6311whu发送一个短消息 把jpz6311whu加入好友 查看jpz6311whu的个人资料 搜索jpz6311whu在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jpz6311whu的博客9
    发贴心情 
    org.apache.jasper.JasperException: Unable to compile class for JSP
    这个表明并不是jena的问题,可能是tomcat有问题,你的tomcat版本太低了,换个5.5试试,然后jdk版本最好也搞个5.0
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/5/11 18:31:00
     
     dasotkb 帅哥哟,离线,有人找我吗?
      
      
      等级:大二(研究C++)
      文章:62
      积分:278
      门派:XML.ORG.CN
      注册:2007/12/25

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给dasotkb发送一个短消息 把dasotkb加入好友 查看dasotkb的个人资料 搜索dasotkb在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 引用回复这个贴子 回复这个贴子 查看dasotkb的博客10
    发贴心情 
    請問原po,jena在jsp中這個問題解決了嗎? 可否給個教學呢.thanks

    humor7207@yahoo.com.tw

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2008/4/7 18:36:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Semantic Web(语义Web)/描述逻辑/本体 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/10/7 18:40:39

    本主题贴数10,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    125.000ms