为什么tomcat找不到我的索引?

时间:2016-09-10 01:59:19

标签: grails tomcat6

我几年来一直在开发grails应用程序,最近我将应用程序部署到tomcat6时遇到了一个奇怪的问题。我可以访问登录页面。我可以登录并获得身份验证。但是,当重新连接到我的索引页面时,我得到404 / myapp /资源不可用。

有趣的是,我可以导航到应用程序中的其他页面并执行我需要的任何操作,但是当导航回主页时,它返回404未找到。

我搜索了已部署的视图目录,并且index.gsp存在于应该存在的位置。我的spock测试没有失败。我不知所措。两年多来,我没有修改我的家庭控制器或索引页面本身。我错过了什么?

我使用grails 2.1.1和tomcat6

更新

这是我的UrlMappings.groovy:

android.applicationVariants.all { variant ->
    if (variant.install != null) {
        variant.install.doLast {
            launchApplicationActivity("com.myapp.MyActivity", variant.getApplicationId())
        }
    }
}

def launchApplicationActivity(activity, applicationId) {
    try {
        ("adb shell am start " + applicationId + "/" + activity).execute()
    } catch (java.io.IOException e) {
        print 'Failed to start application. (Make sure adb is on your path).'
    }
}

}

我的HomeController是真正基本的:

class UrlMappings {

static mappings = {

    "/$controller/$action?/$id?" {
        constraints {
            // apply constraints here
        }
    }

    "/"(controller: "home",action:"index")
        //(view: "/index")

    // special mapping for jqgrid errors
    "500"(controller: "errors", action: "validation", exception: ValidationException)

    //"500"(controller: "errors")
    "500"(view: '/error')
    //"/searchable"(view:"/searchable/index")
    /*name homeView: "/bullMaster" {
        controller = "bullMaster"
        action = "index"
    }
   */
}

}

我通常使用以下方式导航到应用程序:

class HomeController {

def index =  {

    render(view:"index")
}

def termsAndConditions ={
    render(view:"termsAndConditions")
}

1 个答案:

答案 0 :(得分:0)

日志中是否有错误?

接下来尝试一下(每一步后测试):

  1. "/"(controller: "home") - 删除'操作'。
  2. def index = {}更改为def index() {}
  3. 添加'布局':render(view:"index", layout:null)
  4. 删除' index.gsp'。
  5. 中的几乎所有代码
  6. 添加/ home渲染:render(view:"/home/index")
  7. render(view:"index")替换为render text: 'test'
  8. 这个网址有效吗? http://yourip:8080/appName/home/index
  9. 找到问题可能有所帮助。每一步都会得到错误404吗?