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

    >> DTD, XML Schema(XMLS), RELAX NG
    [返回] 中文XML论坛 - 专业的XML技术讨论区XML.ORG.CN讨论区 - XML技术『 DTD/XML Schema 』 → [求助]请教大侠:这个service定义有什么错误 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 2482 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: [求助]请教大侠:这个service定义有什么错误 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     pinky 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:0
      积分:53
      门派:XML.ORG.CN
      注册:2004/9/29

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给pinky发送一个短消息 把pinky加入好友 查看pinky的个人资料 搜索pinky在『 DTD/XML Schema 』的所有贴子 引用回复这个贴子 回复这个贴子 查看pinky的博客楼主
    发贴心情 [求助]请教大侠:这个service定义有什么错误

    下面的代码是用owl_s定义了一个计算器的webservice. 需要输入a,b两个参数,然后先将a,b进行相加,然后再将a,b进行相减,最后将两次计算的结果c,c'进行相乘。

    但是现在遇到很奇怪的问题,在运行成功一次后,再次运行输入参数,就会在进行相减的时候显示缺少参数B.

    那位大侠可以帮我看一下出了什么问题呢?谢谢了。

    <?xml version="1.0" encoding="UTF-8"?>
    <rdf:RDF
      xmlns:owl=          "http://www.w3.org/2002/07/owl#"
      xmlns:rdfs=         "http://www.w3.org/2000/01/rdf-schema#"
      xmlns:rdf=          "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:factbook=     "http://www.daml.org/2003/09/factbook/factbook-ont#"
      xmlns:service=      "http://www.daml.org/services/owl-s/1.0/Service.owl#"
      xmlns:process=      "http://www.daml.org/services/owl-s/1.0/Process.owl#"
      xmlns:profile=      "http://www.daml.org/services/owl-s/1.0/Profile.owl#"
      xmlns:grounding=
    "http://www.daml.org/services/owl-s/1.0/Grounding.owl#"
      xml:base=           "http://localhost:8080/ws/Calculator.owl"
    >

            <owl:Ontology rdf:about="">
                    <owl:imports rdf:resource="http://localhost:8080/ws/Addition.owl"/>
                    <owl:imports rdf:resource="http://localhost:8080/ws/Subtraction.owl"/>
                    <owl:imports rdf:resource="http://localhost:8080/ws/Multiplication.owl"/>
            </owl:Ontology>

    <!-- Service description -->
    <service:Service rdf:ID="CalculatorService">
            <service:presents rdf:resource="#CalculatorProfile"/>

            <service:describedBy rdf:resource="#CalculatorProcessModel"/>

            <service:supports rdf:resource="#CalculatorGrounding"/>
    </service:Service>

    <!-- Profile description -->
    <profile:Profile rdf:ID="CalculatorProfile">
            <service:isPresentedBy rdf:resource="#CalculatorService"/>

            <profile:serviceName xml:lang="en">Calculator</profile:serviceName>
            <profile:textDescription xml:lang="en">Returns the calculator of A e B in
    all operations</profile:textDescription>

            <profile:hasInput rdf:resource="#a"/>
            <profile:hasInput rdf:resource="#b"/>
            <profile:hasOutput rdf:resource="#c"/>
    </profile:Profile>

    <!-- Process Model description -->
    <process:ProcessModel rdf:ID="CalculatorProcessModel">
            <service:describes rdf:resource="#CalculatorService"/>
            <process:hasProcess rdf:resource="#CalculatorProcess"/>
    </process:ProcessModel>

    <process:CompositeProcess rdf:ID="CalculatorProcess">
            <process:hasInput rdf:resource="#a"/>
            <process:hasInput rdf:resource="#b"/>
            <process:hasOutput rdf:resource="#c"/>

            <process:composedOf>
                    <process:Sequence>
                            <process:components rdf:parseType="Collection">
                                    <process:AtomicProcess
    rdf:about="http://localhost:8080/ws/Addition.owl#AdditionProcess"/>
                                    <process:AtomicProcess
    rdf:about="http://localhost:8080/ws/Subtraction.owl#SubtractionProcess"/>
                                    <process:AtomicProcess
    rdf:about="http://localhost:8080/ws/Multiplication.owl#MultiplicationProcess
    "/>
                            </process:components>
                    </process:Sequence>
            </process:composedOf>
    <!--Passa o valor A da calculator para A da Addition -->
            <process:sameValues rdf:parseType="Collection">
                    <process:ValueOf>
                            <process:theParameter rdf:resource="#a"/>
                            <process:atProcess rdf:resource="#CalculatorProcess"/>
                    </process:ValueOf>
                    <process:ValueOf>
                            <process:theParameter
    rdf:resource="http://localhost:8080/ws/Addition.owl#a"/>
                            <process:atProcess
    rdf:resource="http://localhost:8080/ws/Addition.owl#AdditionProcess"/>
                    </process:ValueOf>
            </process:sameValues>

    <!--Passa o valor B da calculator para B da Addition -->
            <process:sameValues rdf:parseType="Collection">
                    <process:ValueOf>
                            <process:theParameter rdf:resource="#b"/>
                            <process:atProcess rdf:resource="#CalculatorProcess"/>
                    </process:ValueOf>
                    <process:ValueOf>
                            <process:theParameter
    rdf:resource="http://localhost:8080/ws/Addition.owl#b"/>
                            <process:atProcess
    rdf:resource="http://localhost:8080/ws/Addition.owl#AdditionProcess"/>
                    </process:ValueOf>
            </process:sameValues>

    <!--Passa o valor A da Addition para A da Subtraction -->
            <process:sameValues rdf:parseType="Collection">
                    <process:ValueOf>
                            <process:theParameter
    rdf:resource="http://localhost:8080/ws/Addition.owl#a"/>
                            <process:atProcess
    rdf:resource="http://localhost:8080/ws/Addition.owl#AdditionProcess"/>
                    </process:ValueOf>
                    <process:ValueOf>
                            <process:theParameter
    rdf:resource="http://localhost:8080/ws/Subtraction.owl#a"/>
                            <process:atProcess
    rdf:resource="http://localhost:8080/ws/Subtraction.owl#SubtractionProcess"/>
                    </process:ValueOf>
            </process:sameValues>

    <!--Passa o valor B da Addition para B da Subtraction -->
            <process:sameValues rdf:parseType="Collection">
                    <process:ValueOf>
                            <process:theParameter
    rdf:resource="http://localhost:8080/ws/Addition.owl#b"/>
                            <process:atProcess
    rdf:resource="http://localhost:8080/ws/Addition.owl#AdditionProcess"/>
                    </process:ValueOf>
                    <process:ValueOf>
                            <process:theParameter
    rdf:resource="http://localhost:8080/ws/Subtraction.owl#b"/>
                            <process:atProcess
    rdf:resource="http://localhost:8080/ws/Subtraction.owl#SubtractionProcess"/>
                    </process:ValueOf>
            </process:sameValues>

    <!--Passa o valor C da Subtracao para A da Multiplicacao -->
            <process:sameValues rdf:parseType="Collection">
                    <process:ValueOf>
                            <process:theParameter
    rdf:resource="http://localhost:8080/ws/Subtraction.owl#c"/>
                            <process:atProcess
    rdf:resource="http://localhost:8080/ws/Subtraction.owl#SubtractionProcess"/>
                    </process:ValueOf>
                    <process:ValueOf>
                            <process:theParameter
    rdf:resource="http://localhost:8080/ws/Multiplication.owl#a"/>
                            <process:atProcess
    rdf:resource="http://localhost:8080/ws/Multiplication.owl#MultiplicationProc
    ess"/>
                    </process:ValueOf>
            </process:sameValues>

    <!--Passa o valor C da Adicao para B da Multiplicacao -->
            <process:sameValues rdf:parseType="Collection">
                    <process:ValueOf>
                            <process:theParameter
    rdf:resource="http://localhost:8080/ws/Addition.owl#c"/>
                            <process:atProcess
    rdf:resource="http://localhost:8080/ws/Addition.owl#AdditionProcess"/>
                    </process:ValueOf>
                    <process:ValueOf>
                            <process:theParameter
    rdf:resource="http://localhost:8080/ws/Multiplication.owl#b"/>
                            <process:atProcess
    rdf:resource="http://localhost:8080/ws/Multiplication.owl#MultiplicationProc
    ess"/>
                    </process:ValueOf>
            </process:sameValues>

    <!--Passa o valor C da Multiplicacao para C da Calculator -->
            <process:sameValues rdf:parseType="Collection">
                    <process:ValueOf>
                            <process:theParameter
    rdf:resource="http://localhost:8080/ws/Multiplication.owl#c"/>
                            <process:atProcess
    rdf:resource="http://localhost:8080/ws/Multiplication.owl#MultiplicationProc
    ess"/>
                    </process:ValueOf>
                    <process:ValueOf>
                            <process:theParameter rdf:resource="#c"/>
                            <process:atProcess rdf:resource="#CalculatorProcess"/>
                    </process:ValueOf>
            </process:sameValues>
    </process:CompositeProcess>

    <process:Input rdf:ID="a">
            <process:parameterType
    rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            <rdfs:label>Calc A</rdfs:label>
    </process:Input>

    <process:Input rdf:ID="b">
            <process:parameterType
    rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            <rdfs:label>Calc B</rdfs:label>
    </process:Input>

    <process:Output rdf:ID="c">
            <process:parameterType
    rdf:resource="http://www.w3.org/2001/XMLSchema#string"/>
            <rdfs:label>Calc Result</rdfs:label>
    </process:Output>

    <!-- Grounding description -->
    <grounding:WsdlGrounding rdf:ID="CalculatorGrounding">
            <!-- service:supportedBy rdf:resource="#BabelFishTranslatorService"/-->
            <grounding:hasAtomicProcessGrounding
    rdf:resource="http://localhost:8080/ws/Addition.owl#AdditionProcessGrounding
    "/>
            <grounding:hasAtomicProcessGrounding
    rdf:resource="http://localhost:8080/ws/Subtraction.owl#SubtractionProcessGro
    unding"/>
            <grounding:hasAtomicProcessGrounding
    rdf:resource="http://localhost:8080/ws/Multiplication.owl#MultiplicationProc
    essGrounding"/>
    </grounding:WsdlGrounding>

    </rdf:RDF>
    ***********************
    Here also the runnig application when it works, and when it dos not works:
    Service:Calculator
    Values:{Calc A=5, Calc B=3}
    Start executing process CalculatorProcess
       Start executing process AdditionProcess
       [DONE]
       Start executing process SubtractionProcess
       [DONE]
       Start executing process MultiplicationProcess
       [DONE]
    [DONE]
    Executed service 'Calculator'
    A   = 5
    B  = 3
    Output =
    16
    ********************
    Service:Calculator
    Values:{Calc A=5, Calc B=3}
    Start executing process CalculatorProcess
       Start executing process AdditionProcess
       [DONE]
       Start executing process SubtractionProcess
    Exception in thread "main" java.lang.Exception: Value of input parameter
    'Sub B'
    is not set!
            at
    org.mindswap.owls.grounding.impl.WSDLAtomicGroundingImpl.invoke(WSDLA
    tomicGroundingImpl.java:134)
            at
    org.mindswap.owls.process.execution.impl.ProcessExecutionEngineImpl.e
    xecuteAtomic(ProcessExecutionEngineImpl.java:117)
            at
    org.mindswap.owls.process.execution.impl.ProcessExecutionEngineImpl.e
    xecute(ProcessExecutionEngineImpl.java:104)
            at
    org.mindswap.owls.process.execution.impl.ProcessExecutionEngineImpl.e
    xecuteOrdered(ProcessExecutionEngineImpl.java:147)
            at
    org.mindswap.owls.process.execution.impl.ProcessExecutionEngineImpl.e
    xecuteConstruct(ProcessExecutionEngineImpl.java:122)
            at
    org.mindswap.owls.process.execution.impl.ProcessExecutionEngineImpl.e
    xecute(ProcessExecutionEngineImpl.java:107)
            at examples.RunService2.runZipCode(RunService2.java:84)
            at examples.RunService2.main(RunService2.java:101)


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/9/29 14:52:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 DTD/XML Schema 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/3/12 1:38:31

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

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