以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  求助:Jena的例子都通不过!!  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=28461)


--  作者:Granttan
--  发布时间:3/11/2006 9:46:00 PM

--  求助:Jena的例子都通不过!!
请各位高人帮忙看一下,这么一个简单的例子都通过不过,是不是环境配置有问题:
        Model model=ModelFactory.createDefaultModel();
        String file = "../../ontology/pub.owl";
        InputStream in;
        in = FileManager.get().open(file);
        if (in==null) return "file not found !" ;
        model.read(new InputStreamReader(in),"" ) ;
        model.write(new PrintWriter(System.out )) ;
到了这一句
model.read(new InputStreamReader(in),"" ) ;
就出错。
错误提示:
org.apache.jasper.JasperException: actualValueType
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
.....
--  作者:jpz6311whu
--  发布时间:3/11/2006 10:21:00 PM

--  
把完整的程序和完整的报错贴出来
--  作者:Granttan
--  发布时间:3/11/2006 11:05:00 PM

--  
程序就是这样的呀!
package jena01;
import com.hp.hpl.jena.rdf.model.*;
import java.io.*;
import com.hp.hpl.jena.util.FileManager;
public class Bean1 {
    public String Read() {
        Model model=ModelFactory.createDefaultModel();
        String file = "../../ontology/pub.owl";
        InputStream in;
        in = FileManager.get().open(file);
        if (in==null) return "file not found !" ;
        model.read(new InputStreamReader(in),"" ) ;
        model.write(new PrintWriter(System.out )) ;
        return "good";
    }
    public Bean1() {
    }
}
被jsp作为bean调用的时候就抱错了,跟踪到model.read(new InputStreamReader(in),"" ) ;
就出错了,model.read可是jean内的代码,我看了一下是:
public abstract interface Model extends ModelCon, ModelGraphInterface, RDFReaderF, RDFWriterF, PrefixMapping, ModelLock {
...
  Model read(Reader reader, String string);
...如此,不知所以然了。
--  作者:jpz6311whu
--  发布时间:3/11/2006 11:25:00 PM

--  
完整的报错贴出来
--  作者:Granttan
--  发布时间:3/12/2006 10:39:00 AM

--  
大侠,快救命呀,问题好奇怪:
我另外用了一个owl文件(里面包含有中文注释)提示如下,

WARN [TP-Processor2] (RDFDefaultErrorHandler.java:36) - (line 1 column 22): {W129} Encoding on InputStreamReader or FileReader does not match that of XML document. Use FileInputStream. [GBK != UTF]
ERROR [TP-Processor2] (RDFDefaultErrorHandler.java:40) - (line 104 column 26): {E210} Encoding error with non-ascii characters.
ERROR [TP-Processor2] (RDFDefaultErrorHandler.java:40) - (line 104 column 26): {E210} Encoding error with non-ascii characters.

而下一句却真确输出model.write(new PrintWriter(System.out )) ;
当我把中文注释改为英文的,又出现原来的错误提示:

WARN [TP-Processor4] (RDFDefaultErrorHandler.java:36) - (line 1 column 22): {W129} Encoding on InputStreamReader or FileReader does not match that of XML document. Use FileInputStream. [GBK != UTF]
StandardWrapperValve[debugjsp]: Servlet.service() for servlet debugjsp threw exception
org.apache.jasper.JasperException: actualValueType
 at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
 at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
 at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
 at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
 at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
 at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
 at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
 at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
 at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
 at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
 at java.lang.Thread.run(Thread.java:534)

究竟是咋回事哟!!!???

[此贴子已经被作者于2006-3-12 12:02:07编辑过]

--  作者:jpz6311whu
--  发布时间:3/12/2006 1:07:00 PM

--  
把owl文件的原文贴出来
--  作者:Granttan
--  发布时间:3/12/2006 1:27:00 PM

--  
owl文件:如果把“就是这个注释”改为英文就出现上边提到的情况

<?xml version="1.0"?>
<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns="http://www.owl-ontologies.com/unnamed.owl#"
  xml:base="http://www.owl-ontologies.com/unnamed.owl">
  <owl:Ontology rdf:about=""/>
  <owl:Class rdf:ID="Animal">
    <owl:disjointWith>
      <owl:Class rdf:ID="Plant"/>
    </owl:disjointWith>
  </owl:Class>
  <owl:Class rdf:ID="Herbivore">
    <rdfs:subClassOf rdf:resource="#Animal"/>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:allValuesFrom>
          <owl:Class rdf:about="#Plant"/>
        </owl:allValuesFrom>
        <owl:onProperty>
          <owl:ObjectProperty rdf:ID="eat"/>
        </owl:onProperty>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:about="#Plant">
    <owl:disjointWith rdf:resource="#Animal"/>
  </owl:Class>
  <owl:Class rdf:ID="Leaf">
    <rdfs:subClassOf rdf:resource="#Plant"/>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:allValuesFrom>
          <owl:Class rdf:ID="Branch"/>
        </owl:allValuesFrom>
        <owl:onProperty>
          <owl:ObjectProperty rdf:ID="is_part_of"/>
        </owl:onProperty>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:ID="Giaffe">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:about="#eat"/>
        </owl:onProperty>
        <owl:allValuesFrom rdf:resource="#Leaf"/>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf rdf:resource="#Herbivore"/>
  </owl:Class>
  <owl:Class rdf:about="#Branch">
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:onProperty rdf:resource="#is_part_of"/>
        <owl:allValuesFrom>
          <owl:Class rdf:ID="Tree"/>
        </owl:allValuesFrom>
      </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf rdf:resource="#Plant"/>
  </owl:Class>
  <owl:Class rdf:ID="Lion">
    <rdfs:subClassOf>
      <owl:Class rdf:ID="Carnivore"/>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
      <owl:Restriction>
        <owl:allValuesFrom rdf:resource="#Herbivore"/>
        <owl:onProperty>
          <owl:ObjectProperty rdf:about="#eat"/>
        </owl:onProperty>
      </owl:Restriction>
    </rdfs:subClassOf>
  </owl:Class>
  <owl:Class rdf:about="#Carnivore">
    <owl:equivalentClass>
      <owl:Class>
        <owl:intersectionOf rdf:parseType="Collection">
          <owl:Class rdf:about="#Animal"/>
          <owl:Restriction>
            <owl:allValuesFrom rdf:resource="#Animal"/>
            <owl:onProperty>
              <owl:ObjectProperty rdf:ID="maineat"/>
            </owl:onProperty>
          </owl:Restriction>
        </owl:intersectionOf>
      </owl:Class>
    </owl:equivalentClass>
  </owl:Class>
  <owl:Class rdf:about="#Tree">
    <rdfs:subClassOf rdf:resource="#Plant"/>
  </owl:Class>
  <owl:ObjectProperty rdf:ID="eated">
    <owl:inverseOf>
      <owl:ObjectProperty rdf:about="#eat"/>
    </owl:inverseOf>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="#maineat">
    <rdfs:comment rdf:datatype="http://www.w3.org/2001/XMLSchema#string"
    >就是这个注释</rdfs:comment>
    <rdfs:subPropertyOf>
      <owl:ObjectProperty rdf:about="#eat"/>
    </rdfs:subPropertyOf>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="#eat">
    <owl:inverseOf rdf:resource="#eated"/>
  </owl:ObjectProperty>
</rdf:RDF>

<!-- Created with Protege (with OWL Plugin 2.1, Build 284)  http://protege.stanford.edu -->


--  作者:Granttan
--  发布时间:3/12/2006 2:51:00 PM

--  
解决了,是环境配置太低了
--  作者:lotin
--  发布时间:3/28/2006 2:14:00 PM

--  
我的也是这样啊
谢谢各位兄台!
--  作者:swfan
--  发布时间:3/29/2006 6:23:00 PM

--  
是机器的硬件环境配置太低?
--  作者:devil
--  发布时间:3/30/2006 4:48:00 PM

--  
在classpath里面添加jena的lib目录下面的所有jar文件。需要引入jena自身的类的

--  作者:linkejie126
--  发布时间:4/28/2009 12:24:00 AM

--  
环境配置太低了?
是什么太低了?
我也出现了这情况。
谢谢。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
109.375ms