grails weblogic urlMapping “/"失效或这提示找不到index页面

grails 2.0.4 在urlMapping设置默认执行的页面,代码:
class UrlMappings {

static mappings = {
"/"(controller:"system") //默认跳转到系统的controller
"404"(view:"404")
}
}
在tomcat没有题,可是切换到了weblogic默认就进入404页面了,通过查找和调试,终于发现原因了,注视了404的验证后,就提示找不到index页面,原来是weblogic默认访问index页面,"/"拦截不到,更改后:"
class UrlMappings {

static mappings = {
"/"(controller:"system") //默认跳转到系统的controller
"/index.gsp"(controller:"system")
"404"(view:"404")
}
}
这个问题通常是由不兼容的Grails和Melody版本引起的。请尝试更新Grails版本和Melody插件版本,以确保它们之间兼容。 如果更新版本无效,则可能需要手动添加`asType`方法。 在你的Grails项目中,创建一个`src/main/groovy`目录,在其中创建一个名为`groovy.grails.plugins.melody.AsTypeFix`的类,代码如下: ```groovy package groovy.grails.plugins.melody import org.codehaus.groovy.ast.ClassNode import org.codehaus.groovy.ast.MethodNode import org.codehaus.groovy.ast.stmt.BlockStatement import org.codehaus.groovy.ast.stmt.ExpressionStatement import org.codehaus.groovy.ast.stmt.ReturnStatement import org.codehaus.groovy.ast.stmt.Statement import org.codehaus.groovy.control.CompilePhase import org.codehaus.groovy.control.SourceUnit import org.codehaus.groovy.transform.GroovyASTTransformation import org.codehaus.groovy.transform.GroovyASTTransformationClass @GroovyASTTransformation(phase = CompilePhase.CANONICALIZATION) class AsTypeFix implements org.codehaus.groovy.ast.ASTTransformation { void visit(ASTNode[] astNodes, SourceUnit sourceUnit) { List<ClassNode> classes = sourceUnit.getAST()?.getClasses() if (classes == null || classes.isEmpty()) { return } classes.each { ClassNode classNode -> classNode.getMethods().each { MethodNode methodNode -> if (methodNode.getName() == "asType" && methodNode.getParameters().size() == 1) { Statement code = methodNode.getCode() if (code instanceof BlockStatement && code.getStatements().size() == 1) { Statement statement = code.getStatements()[0] if (statement instanceof ReturnStatement && statement.getExpression() instanceof ExpressionStatement) { ExpressionStatement expressionStatement = (ExpressionStatement) statement.getExpression() if (expressionStatement.getExpression().getText() == "target.@groovy.transform.stc.AsTypeChecked::asType(params[0])") { expressionStatement.getExpression().setText("target.asType(params[0])") } } } } } } } } ``` 然后,在`grails-app/conf/BuildConfig.groovy`文件中添加以下行: ```groovy grails.plugin.location.'melody' = "../grails-melody" // 修改为你的Melody插件路径 ``` 这将使Grails使用本地的Melody插件。现在,重新启动你的应用程序并检查是否解决了问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值