7

我正在使用 ExtJS 4.1,我正在 GlassFish V3.1 上部署我的简单 HelloExt 程序。

我正在尝试从 Sencha SDK 创建一个构建。

我使用了以下两个命令...

C:\>sencha create jsb -a http://localhost:8080/HelloExt/index.jsp -p appname.jsb
3 -v


C:\>sencha build -p appname.jsb3 -v -d .

根据文档,它将创建 app-all.js 文件。但是它在哪里创建文件?

我如何知道 IF 构建是否成功创建?

生成的 JS 文件在哪里?

我进行了搜索,但找不到 app-all.js 之类的东西。

了解更多信息:

我正在使用 JDK 1.6.0_12 和 GlassFish V3.1 应用服务器。

这是问题的编辑内容....

当我尝试使用 sencha SDK 时,它会在类路径中生成一个 .dpf 文件。.dpf 文件的内容如下...

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
  <context-root>/HelloExt</context-root>
  <class-loader delegate="true"/>
  <jsp-config>
    <property name="keepgenerated" value="true">
      <description>Keep a copy of the generated servlet class' java code.</description>
    </property>
  </jsp-config>
</glassfish-web-app>

谁能告诉我为什么在这里生成 .DPF 文件?为什么它不生成 app-all.js 文件?

4

1 回答 1

6

尝试从应用程序根目录中运行命令,然后使用相对路径:

0) 打开cmd窗口

1)在cmd窗口中运行:“cd C:\[webserver_webapp_root]\[app_name]”

换句话说,将 cmd 目录更改为应用程序根目录。用正确的路径填写上面括号中的文本。

2)在cmd窗口中运行:“sencha create jsb -a index.html -p app.jsb3 -v”

app.jsb3 应该在您的应用程序的根目录 (C:\[webserver_webapp_root]\[app_name]) 中创建。打开它并确保它包含您所有的应用程序类,它应该看起来像这样:

{
    "projectName": "Project Name",
    "licenseText": "Copyright(c) 2012 Company Name",
    "builds": [
        {
            "name": "All Classes",
            "target": "all-classes.js",
            "options": {
                "debug": true
            },
            "files": [
                {
                    "clsName": "YourApp.view.Viewport",
                    "name": "Viewport.js",
                    "path": "app/view/"
                },
                // plus ALOT more classes...
            ]
        },
        {
            "name": "Application - Production",
            "target": "app-all.js",
            "compress": true,
            "files": [
                {
                    "path": "",
                    "name": "all-classes.js"
                },
                {
                    "path": "",
                    "name": "app.js"
                }
            ]
        }
    ],
    "resources": []
}

如果一切正常,那么您可以进行下一步,如果不是,那么您的应用程序目录结构有问题,您需要按照Sencha 推荐的 ExtJS 应用程序架构来修复它。

您还可以使用任何错误消息来帮助识别问题。

3) 更新 app.jsb3 顶部的占位符(“项目名称”等)

4)在cmd窗口中运行:“sencha build -p app.jsb3 -d . -v”

app-all.js文件还应该在应用程序的根目录中创建。如果 cmd 窗口在显示“Done Building!”之前没有给出任何错误。那么你就完成了。您现在可以将index.html脚本链接更改为指向app-all.js而不是app.js.

如果有错误,那么您必须修复这些错误并再次运行它。

您可以尝试的其他事情:

作为对您最后评论的回应,您的 -p 开关参数应该是一个jsb3文件 not jsb

在尝试使用 SDK 工具之前,请确保 Web 服务器正在运行并且您的应用程序运行时没有任何错误。

然后试试这些:

C:\Projects\HelloExt\build\web>sencha create jsb -a index.jsp -p HelloExt.jsb3 -v

C:\Projects\HelloExt>sencha create jsb -a index.jsp -p HelloExt.jsb3 -v

C:\>sencha create jsb -a [actual IP address]:8080/HelloExt/index.jsp -p HelloExt.jsb3 -v

在括号(不是localhost)的位置填写您的实际 IP 地址。

这应该会生成上面 #2 中显示的 jsb3 文件,然后您可以继续执行上面的步骤 #3。

于 2012-09-04T16:03:32.647 回答