我試圖在glassfish中使用JOOQ。我使用的代碼生成器是這樣的:使用JOOQ的java.lang.NoSuchMethodError
java -cp jOOQ-lib/jooq-3.3.1.jar:jOOQ-lib/jooq-meta-3.3.1.jar:jOOQ-lib/jooq-codegen-3.3.1.jar:mysql-connector-java-5.1.29-bin.jar:. org.jooq.util.GenerationTool /db.xml
然後導入生成的文件夾到我的項目(我不使用jooq Maven插件)。當我在GlassFish中部署Web應用程序我看到這個server.log中
[#|2014-04-06T14:53:37.720+0430|SEVERE|glassfish3.1.2|com.sun.xml.ws.server.sei.TieHandler|_ThreadID=670;_ThreadName=Thread-2;|org.jooq.impl.TableImpl.<init>(Ljava/lang/String;Lorg/jooq/Schema;Lorg/jooq/Table;[Lorg/jooq/Field;Ljava/lang/String;)V
java.lang.NoSuchMethodError: org.jooq.impl.TableImpl.<init>(Ljava/lang/String;Lorg/jooq/Schema;Lorg/jooq/Table;[Lorg/jooq/Field;Ljava/lang/String;)V
我並沒有改變任何行家配置只是NetBeans的默認配置。 Maven構件:
<dependency>
<groupId>org.jooq</groupId>
<artifactId>jooq</artifactId>
<version>3.3.1</version>
</dependency>
我db.xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
<!-- Configure the database connection here -->
<jdbc>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://127.0.0.1/bulkdb?useUnicode=true</url>
<user>user</user>
<password>pass</password>
</jdbc>
<generator>
<database>
<name>org.jooq.util.mysql.MySQLDatabase</name>
<inputSchema>bulkdb</inputSchema>
<includes>.*</includes>
<excludes></excludes>
</database>
<target>
<packageName>bulkdb</packageName>
<directory>/home/user/jooq</directory>
</target>
</generator>
</configuration>
到底哪裏出問題了?有人可以幫忙嗎?
[UPDATE]
實際上有在應用服務器類路徑中的兩個版本JOOQ的:一個在結構域(域1/LIB /)3.1版本和第二個的lib目錄是3.3.1被捆綁在戰爭文件中。這是否會導致問題?
儘管我對netbeans不太熟悉,但是您能否檢查'jooq.jar'是否在您的依賴關係文件夾中? – tmarwen
@tmarwen是的,jooq-3.3.1.jar在依賴關係文件夾中 –
而且您確定*您已將jOOQ 3.3.1捆綁到您的應用服務器中,而不是舊版本的jOOQ? –