用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
macrocloud的公告
<b>欢迎光临宏云专栏</b> <p> 宏云 </p> <p> PH.D,IOS,CAS </p> <p> 研究领域: </p> <p> 1.软件工程 </p> <p> 2.工作流技术 </p> <p> MSN: </P> <p> jasonwind2000@hotmail.com </p> <p> Email:macrocloud@126.com </p> <p> 访问量: </p> <script src=http://www.2881.com/count5/count.asp?id=7870&sx=1&ys=5></script>
文章分类
友情链接
Rosen's Blog
存档

原创  从头开始学Shark II 收藏

从头开始学Shark II –

启动引擎和登陆

(宏云翻译,Cygnet开源工作流组,2005-4-15

原文地址:http://shark.objectweb.org/doc/sfs/sharkfromscratch2.html

在这篇文档中,我简单描述实例代码的创建。和以前一样,我不打算涉及和本文不直接相关的所有主题。首先,你必须了解如何去编写、编译和执行Java程序。另外,你需要有一个Shark的运行版,并且能够使用Shark提供的管理程序。

和以前一样,我已经安装了以下程序:

  1. MySQL –我使用4.0.16-nt

  2. MySQL Connector – 我使用mysql-connector-java-3.0.11-stable-bin.jar

  3. Ant 1.6.x – 不是必需的,但是我提供了一个build file....

  4. Java – 我使用Sun j2sdk version 1.4.2_04

  5. CVS, Winzip, 等其他需要的软件。

在执行以下命令后,我的Shark build安装在C:\Shark目录下

        make -install

我使用的策略是重复构造一些类(class)来示范如何在Shark中广泛使用。接口是Main method之外的一个命令行。这样做的目的是让新用户可以很容易地开始,并舒适地为Shark进行编码。

文件

你可以阅读这些文件,并且点击指向源码的链接,它是通过Java2html Java2Html ( www.java2html.com )产生的。另外,我已经提供了源码和Ant Build文件。可以在这里找到它们here.

开始使用Shark

开始使用Shark如下所示一样简单:

         Shark.configure(new Properties("Shark.conf")); 

 

也就是说,首先要配置Shark (Shark from Scratch(从头开始学习Shark))。那么,你需要确保所有的Jar文件都是可用的。我们这里构建的代码并不在Shark目录下。

能够启动Shark的最小jar文件集合是(根据我的配置):

  • C:\Shark\lib\sharkkernel-standard.jar

  • C:\Shark\lib\sharkclientapi.jar

  • C:\Shark\lib\sharkcommonapi.jar

  • C:\Shark\lib\sharkinternalapi.jar

  • C:\Shark\lib\sharkxpdl-standard.jar

  • C:\Shark\lib\sharkinstancepersistence-dods.jar

  • C:\Shark\lib\dods-runtime.jar

  • C:\Shark\lib\util.jar

  • C:\Shark\lib\sharkutilities-dods.jar

  • C:\Shark\lib\mysql-connector-java-3.0.11-stable-bin.jar

  • C:\Shark\lib\sharkrepositorypersistence-dods.jar

  • C:\Shark\lib\sharkscripting-standard.jar

  • C:\Shark\lib\sharkutilities-map.jar

  • C:\Shark\lib\sharkutilities-misc.jar

  • C:\Shark\lib\xercesImpl.jar

  • C:\Shark\lib\xml-apis.jar

构建实例

因为代码量很小, 所以我把它列到这里,让大家可以深入了解。当然,同时我提供了所有的源代码和一个脚本文件,见here. 这个例子在first 包中可以找到。

运行"ant -p"来看一下目标达成情况。如果你不是使用c:\Shark作为你的安装目录, 你必须在你的构建脚本文件中改变shark.dir的属性值。我们运行的类叫 Simple

在运行之前,让我们来看看代码:

package first;
         
import org.enhydra.shark.Shark;

 

import java.util.Properties;
import java.io.FileInputStream;

 

/**
 * Does nothing more than start the Shark engine.
 */
public class Simple
{
   public static void main(String[] args)
   {
      try
      {
         Properties props = new Properties();
         props.load(new FileInputStream("C:\\Shark\\Shark.conf"));

 

         System.out.println("Enginename from Shark.conf is : " + props.getProperty("enginename"));

 

         // Make SURE every instance of shark that connects to the same database uses a different
         // enginename.
         props.setProperty("enginename", "rross");

 

         Shark.configure(props);

 

      }
      catch (Exception e)
      {
         // It's not like I am going to revive the thing if it crashes...
         e.printStackTrace();
      }
   }
}

代码相当简单,它实现装载properties文件,提供一个不同的引擎名称并把属性对象传递给Shark

启动你的引擎

要运行它,只要在Dos命令中输入"ant runFirst"即可。当执行命令后,要看一下随后的输出

C:\dev\SharkFromScratch>ant runFirst
Buildfile: build.xml

 

runFirst:
     [java] Enginename from Shark.conf is : Shark
     [java] SharkEngineManager -> Shark engine is being initialized ...
     [java] File dodsConf.xml not exists on path: 'dodsconf' using default insted
     [java] Shark -> Initializing of shark engine has finished
     [java] Shark -> Initializing lasted 5 [s]
     [java] Shark -> firstEngine ready and waiting ...

 

BUILD SUCCESSFUL
Total time: 6 seconds

除了一个异常之外,其他都很正常。这个异常是“File dodsConf.xml not exists on path: 'dodsconf' using default insted"。忽略语法和拼写错误,就是说,不能找到dodsConf.xml的备份。如果我在Shark目录下做一个快速搜索,我能看到dodsConf.xml    确实存在。发生的问题是Shark.conf文件有一个缺省的相对路径,当你在包含build文件的目录(我这里是C:\dev\SharkfromScratch)下运行时,Shark能够找到所有的配置文件和其他信息。

修补配置文件

不是编辑硬盘上的Shark.conf文件,而是编辑在启动时传递给Shark引擎的各种属性。这使得我能够更好地控制什么会参与进来,使得我能够在应用(如runsa.bat)中继续使用“官方的(official)”Shark.conf文件,而不用经常改动它。

在交付给Shark之前,我会装载属性文件并预先考虑属性中所有相关文件名称的Shark安装目录。

second.Simple, 你能够看到上述情况。它并不是不可思议的,我已经硬编码了Shark的安装路径,它确实是完成了工作。

运行它,你会得到以下的输出(或者非常相似)

C:\dev\SharkFromScratch>ant runSecond
Buildfile: build.xml

 

runSecond:
     [java] Fixing up Shark config
     [java] SharkEngineManager -> Shark engine is being initialized ...
     [java] Shark -> Initializing of shark engine has finished
     [java] Shark -> Initializing lasted 5 [s]
     [java] Shark -> secondEngine ready and waiting ...

 

BUILD SUCCESSFUL
Total time: 6 seconds

正如你看到一样,Shark不再因为找不到dodsConf.xml文件而备受抱怨。在这一点上,我们正确启动了Shark

深入钻研Shark

既然我们能够启动Shark,让我们来看一下我们能够得到什么。Third包是我们第一次尝试构建一个程序。Workflow类提供一个称作init的方法,这个方法包含了到目前为止我们已经做的工作。

登录

下一步, 我们进行登录。实际上,我们要做的是获得一个SharkConnection对象,我们称作它的connect method. 这一代码片段来自login方法。

SharkConnection conn = Shark.getInstance().getSharkConnection();

 

try
{
   conn.connect(userName, password, props.getProperty("enginename"), null);
}

连接命令的第四个参数是’scope’,但是上次检查中我发现它没有和任何东西相连。在提供的build.xml文件中,使用"runThird",我们应改可以看到下面的结果。

C:\dev\SharkFromScratch>ant runThird
Buildfile: build.xml

 

runThird:
     [java] Fixing up Shark config
     [java] SharkEngineManager -> Shark engine is being initialized ...
     [java] Shark -> Initializing of shark engine has finished
     [java] Shark -> Initializing lasted 5 [s]
     [java] Shark -> thirdEngine ready and waiting ...

 

BUILD SUCCESSFUL
Total time: 6 seconds

你们可能注意到在登录的时候,系统没有提供新的信息。这很好,因为连接不是空的,且没有异常抛出,因此我们继续进行。

在调用recreateDB之后,这个新的数据库实际上还没有任何用户,注意到这一点是很重要的。如果你还没有这样做,你可以运行Shark Swing应用程序(我这里是C:\Shark\runsa.bat),并且使用用户名”admin”和密码"enhydra"登录。这样就会创建”admin”用户。实际上,如果你用未知的用户名登录Swing应用程序,它就会按照你提供的用户名和密码来创建一个新的用户

Classpaths

在提供的build.xml文件中,所有的目标具有相同的class path,但是正如你看到的那样,我前面已经进行了评议,以便你可以在任何点上,都能够判断需要什么文件。对于一个特定的安装来说,并不是Shark产生的所有文件都是必需的,因此,这会帮助你稍微整理一下你的class path.

 

发表于 @ 2005年04月15日 15:40:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:OBE用户指南(中文版)

  • 发表评论
  • 评论内容:
  •  
Copyright © macrocloud
Powered by CSDN Blog