2

我正在为我的项目使用 GeneXus Evolution 2。在开发过程中,出现以下错误:

HTTPステータス 500 -java.lang.NoSuchMethodError:com.genexus.ModelContext.server2webcli(Ljava/util/Date;)Ljava/util/Date;

我不知道它是什么以及如何解决这个问题。有任何想法吗?

4

4 回答 4

2

ANoSuchMethodError通常表示在编译代码时存在方法(声明),但在运行时缺少实现。在大多数情况下,原因是编译时在类路径中有相应库的 JAR 文件的一个版本,而在运行时另一个不兼容的版本。

更详细的答案需要更详细的问题......;-)

于 2014-09-17T05:58:34.037 回答
1

假设您使用 Tomcat 作为 servlet 容器,请查看{Tomcat_Home}/webapps/MyApp/WEB-INF/libMyApp您的应用程序名称在哪里。将有一个gxclassR.jar与您的 Genexus 安装版本匹配的文件。要测试您是否有正确的:

  1. gxclassD.jar确保在同一个文件夹中没有其他类似的库,例如。如果有,请将其删除。
  2. 转到您正在工作的环境目标文件夹(从 Genexus DE 菜单“工具 -> 探索目标环境目录”)并查找该gxclassR.zip文件。复制到WEB-INF/lib folder,将其重命名为gxclassR.jar替换实际gxclassR.zip文件。
  3. 重新启动 tomcat 应用程序以确保gxclassR.jar正在使用新的应用程序。

如果您的对象一直失败,那么问题可能.class与您的 Genexus 对象有关。也许没有正确生成/编译。所以,要解决这个问题:

  1. 强制构建gen​​exus 对象。为此,请尝试Build with this only与对象关联的选项。激活Force此操作的选项,访问“工具 -> 选项 -> 构建 -> 仅使用此构建”
  2. 强制构建后,再次转到环境目标文件夹并查找.class与对象关联的文件。通常文件名与对象名相匹配。查看修改日期并确认是最近的。
  3. 将此.class文件复制到WEB-INF\classeswebapp 文件夹内的文件夹中。

我认为这是足够好的信息来解决您的问题。如果没有,请详细说明您的错误。

于 2014-10-03T13:43:58.097 回答
0

gxclassR.zip检查KB ( ) 内 Web 文件夹中文件的日期和大小Tools -> Explore Target Environment Directory,并将其与 Web 应用程序使用的文件(文件夹WEB-INF/lib)进行比较。如果它们不匹配,请将 Web 应用程序中的那个替换为 KB 中的那个。

如果您不确定,并且希望 GX 处理它,请删除.ver您的 web 文件夹中的所有文件并强制构建。那应该将所有文件同步到正确的版本。

于 2015-01-23T17:03:05.787 回答
0

也可能是您调用的方法不存在,或者存在不同的参数,无论是数量还是类型。

于 2017-07-28T14:05:17.800 回答