65.9K
CodeProject 正在变化。 阅读更多。
Home

ASP.NET Time Tracker 启动器工具包移植到 Linux 使用 Mainsoft 的 Grasshopper

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.60/5 (2投票s)

2005年9月28日

6分钟阅读

viewsIcon

32480

downloadIcon

143

Linux 冲刺 - 如何将 Visual Studio .NET Web 应用程序移植到 Linux 上的 J2EE 框架

引言

为了 Linux 冲刺,我决定使用 Mainsoft 的 Visual Mainwin for J2EE (Grasshopper) 来移植 ASP.NET 启动器工具包的 Time Tracker Web 应用程序。我从 ASP.NET 启动器工具包网站下载了启动器工具包文件,然后打开 Visual Studio,安装了 Grasshopper (它会安装 Apache Tomcat 5),并右键单击“生成 J2EE 项目”。仅此而已吗?并非如此……

方法论

Grasshopper 提供了一种机制,可以将 C# 和 VB.NET Visual Studio 项目转换为 Java 字节码,从而形成 J2EE 应用程序。基本上,.NET Framework 命名空间(System、System.Data 等)已被重写为 Java JAR 程序集,这与 Mono 项目所做的非常相似。Mainwin 部署包会输出一个 WAR 存档,用于安装在 J2EE 应用程序服务器上。J2EE 类库的很大一部分都镜像了 .NET Framework 提供的功能(或者反过来?)。只要 Mainwin 框架中存在相同的命名空间、类和方法,C# 或 Visual Basic 程序员就可以将其应用程序移植到 J2EE 应用程序。我的方法是熟悉 C# 源代码,生成 J2EE 项目,找出 Mainwin 框架不支持的内容,进行积极的调试,使用真实的 QA 方法测试移植的用户功能,并在应用程序服务器上测试部署包。

我使用 FireFox 1.0.4 和 Internet Explorer 6 测试了该 Web 应用程序。我测试的应用程序服务器是运行在 Debian Linux 2.4.18 上的 Apache Tomcat 5.0.28。

我开发移植应用程序的顺序如下:

  1. 生成 J2EE 项目
  2. 修复编译时错误
  3. 重新构建 J2EE 项目
  4. 测试 Web 应用程序的功能,直到出现问题
  5. 调试并修复发现的问题
  6. 重新构建并创建部署包

挑战

  1. 图表图像无法工作,原因是 Mainwin Java 编译器在处理使用 '+' 连接字符串然后换行时遇到了问题。我将字符串放在了一行(就像 .NET 和 Java 编译器那样),这解决了问题。
  2. JDBC jar 文件默认不在正确的 Tomcat 目录中,因此在尝试保存用户注册数据时,我收到了“连接套接字错误”消息。将 jar 文件复制到 Tomcat common/lib 目录为 Tomcat 提供了必要的驱动程序。
  3. System.DirectoryServices 和 System.Drawing 程序集需要相应的 J2EE 兼容 Java 程序集。这些引用导致了 J2EE 编译错误。
  4. 项目类别缩写文本框的验证不起作用,所以我采取了一个变通方法:添加了一个 maxlength 属性以匹配数据库架构。为了节省时间,我这样做了,而不是修复验证代码。我将在稍后更新我的博客,提供修复方案。
  5. 一些 IDE 特定的错误,例如 Mainwin 不支持 Visual Studio .NET 的解决方案和项目保存方式,阻碍了我的进展。
  6. 一些不受支持的 web.config 键实际上导致了编译错误。

我的 Linux 冲刺博客

您可以在这里查看此移植项目的更多详细过程。

配置 Linux 服务器/安装所需软件包

下载并安装 SuSE Linux 9.2 软件包:打开 YaST 控制中心,选择安装和删除软件,这将打开 SuSE 包管理器。

安装以下软件包。使用搜索按钮查找它们。

  • java-1_4_2-sun
  • java-1_4_2-sun-devel
  • java-1_4_2-sun-jdbc
  • tomcat5
  • tomcat5-admin-webapps
  • tomcat5-webapps

请务必安装 YaST2 推荐的所有依赖项。

安装完软件包后,重启 Tomcat。以 root 用户身份打开一个 shell 窗口。键入以下命令:

/etc/init.d/tomcat restart

当您的 Linux 机器重启后,Tomcat 将会自动启动。

Tomcat 部署说明

  1. 从本文档下载 MainWin 框架 JAR zip 文件。
  2. 将 zip 文件中的 JAR 文件复制到 **${TOMCAT_HOME}/common/lib** 目录。
  3. 使用 shell 命令重启 Tomcat:/etc/init.d/tomcat restart
  4. 下载本文档 zip 文件中的 WAR 包 (Tracker.zip)。
  5. 此应用程序需要 SQL Server 2000 的 JDBC 支持,因此请将 zip 文件中的 jar 文件复制到 **${TOMCAT_HOME}/common/lib** 目录,并重启 Tomcat。
  6. 使用 Admin 控制台部署 war 文件
    http://{hostname}:{port}/manager/html。向下滚动到 **要部署的 WAR 文件** 部分,然后使用 **浏览** 按钮找到本文档 zip 文件中下载的 WAR 文件。单击 **部署**,应用程序将被添加到 Tomcat Web 应用程序管理器中的应用程序列表中。单击已列出应用程序旁边的 **启动** 链接,应用程序即可供浏览。
  7. 如果连接到远程 SQL Server,您需要修改位于 **${TOMCAT_HOME}/webapps/TimeTracker** 目录下的 Web.config 文件中的 ConnectionString 键。根据您的服务器配置,您可能需要使用 SQL Server 的 IP 地址及其端口。(例如:10.0.10.223:1433)。SQL Server 2000 的 localhost 实例默认监听端口 1433,但您应通过在 SQL Manager MMC 中右键单击您的数据库实例,选择 }} 属性 }} '网络配置',然后在右侧列表中单击 TCP/IP,并选择 '属性' 来进行检查。

注释

  • element 的 autoDeploy 属性需要在 **${TOMCAT_HOME}/conf/server.xml** 配置文件中将 element 的 autoDeploy 属性设置为 true,以便在您将 war 文件复制到 **${TOMCAT_HOME}/webapps** 目录并重启 Tomcat 时,Tomcat 能够自动部署 war 文件。
  • 对于手动安装,请将 WAR 文件复制到 **${TOMCAT_HOME}/webapps** 目录,然后重启 Tomcat。有关更详细的信息,请从 Apache Jakarta 项目网站访问 Manager App HOW-TO 页面。请遵循“从本地路径部署新应用程序”标题下的说明。

备用应用程序服务器部署说明

Code Project 不会测试这些应用程序服务器,但我提供了 Mainsoft 的 Grasshopper 文档 的摘录,如果您想自己部署该应用程序,并且您正在使用以下应用程序服务器之一。

WebLogic 部署说明

  1. http://{hostname}:{port}/console(例如 https://:7001/console)打开 WebLogic Server 管理控制台。
  2. 在您的域名下,转到 Deployments }} Web Applications Modules。
  3. 单击 Deploy a new Web Application Module 链接。
  4. 找到应用程序 WAR 文件,然后单击 Target Module。
  5. 在 Name 字段中,输入 Web 应用程序/服务的名称。
  6. 单击 Deploy。
  7. 控制台将显示 Deploy 选项卡,其中列出了 Web 应用程序/服务的部署状态和部署活动。几秒钟后,状态将更改为“Success”。
  8. 将 JDBC jars 添加到 **{WebLogic_install_dir}\common\bin** 文件 commEnv.cmd 中的 WEBLOGIC_CLASSPATH 环境变量。例如,如果您将所有 JAR 文件复制到远程计算机上的临时文件夹,您的代码可能如下所示:

    set WEBLOGIC_CLASSPATH=%WEBLOGIC_CLASSPATH%; C:\temp\msbase.jar;
    set WEBLOGIC_CLASSPATH=%WEBLOGIC_CLASSPATH%; C:\temp\mssqlserver.jar;
    set WEBLOGIC_CLASSPATH=%WEBLOGIC_CLASSPATH%; C:\temp\msutil.jar;

WebSphere 部署说明

  1. 打开 WebSphere 管理控制台。
  2. 在您的节点名称下,转到 **Applications** }} **Enterprise Applications** 页面,然后单击 **Install** 打开安装向导。
  3. 在 Local path 文本框中,输入 WAR 文件的路径。
  4. 在 Context Root 文本框中,输入所需的应用程序上下文根,然后单击 Next。
  5. 继续单击 Next,直到看到向导摘要页面。查看安装摘要,如果正确,请单击 Finish。
  6. 保存配置。
  7. 在 Enterprise Applications 页面中,通过选中其旁边的复选框并单击 Start 来启动您的 Web 应用程序/服务。
  8. 将 zip 文件中包含的 JDBC jar 文件复制到 **{WebSphere_install_dir}\AppServer\lib**

JBoss 部署说明

  1. 将您要部署的 Web 应用程序/服务的 WAR 文件复制到 **{JBoss_install_dir}\server\{server name}\deploy** 目录。
  2. 将 zip 文件中包含的 JDBC jar 文件复制到 **{JBoss_install_dir}\server\{server name}\deploy**


© . All rights reserved.