我正在为我的项目使用 GeneXus Evolution 2。在开发过程中,出现以下错误:
HTTPステータス 500 -java.lang.NoSuchMethodError:com.genexus.ModelContext.server2webcli(Ljava/util/Date;)Ljava/util/Date;
我不知道它是什么以及如何解决这个问题。有任何想法吗?
ANoSuchMethodError
通常表示在编译代码时存在方法(声明),但在运行时缺少实现。在大多数情况下,原因是编译时在类路径中有相应库的 JAR 文件的一个版本,而在运行时另一个不兼容的版本。
更详细的答案需要更详细的问题......;-)
假设您使用 Tomcat 作为 servlet 容器,请查看{Tomcat_Home}/webapps/MyApp/WEB-INF/lib
,MyApp
您的应用程序名称在哪里。将有一个gxclassR.jar
与您的 Genexus 安装版本匹配的文件。要测试您是否有正确的:
gxclassD.jar
确保在同一个文件夹中没有其他类似的库,例如。如果有,请将其删除。gxclassR.zip
文件。复制到WEB-INF/lib folder
,将其重命名为gxclassR.jar
替换实际gxclassR.zip
文件。gxclassR.jar
正在使用新的应用程序。如果您的对象一直失败,那么问题可能.class
与您的 Genexus 对象有关。也许没有正确生成/编译。所以,要解决这个问题:
Build with this only
与对象关联的选项。激活Force
此操作的选项,访问“工具 -> 选项 -> 构建 -> 仅使用此构建”.class
与对象关联的文件。通常文件名与对象名相匹配。查看修改日期并确认是最近的。.class
文件复制到WEB-INF\classes
webapp 文件夹内的文件夹中。我认为这是足够好的信息来解决您的问题。如果没有,请详细说明您的错误。
gxclassR.zip
检查KB ( ) 内 Web 文件夹中文件的日期和大小Tools -> Explore Target Environment Directory
,并将其与 Web 应用程序使用的文件(文件夹WEB-INF/lib
)进行比较。如果它们不匹配,请将 Web 应用程序中的那个替换为 KB 中的那个。
如果您不确定,并且希望 GX 处理它,请删除.ver
您的 web 文件夹中的所有文件并强制构建。那应该将所有文件同步到正确的版本。
也可能是您调用的方法不存在,或者存在不同的参数,无论是数量还是类型。