Я использую JDK 7 и тестирую игру! 1.2.4. Я создавал тестовый класс с общественным элементом под названием «имя» и получил исключение, что мой класс был переопределяем окончательным метод «GetName»:Нельзя публиковать имя участника '
public class DummyClass extends Thread {
public String name;
...
}
Этого класс не является часть «рамок» себя: это это Thread, который получает информацию от Socket и сохраняет его в базе данных через Play! JPA (из пакета «models»). Мое приложение не является полным «веб-приложением», но имеет некоторые части, к которым следует обращаться через браузер (обычно: конфигурация, простой поиск базы данных, ...). Он запускает приложение @OnApplicationStart, которое запускает Threads, Sockets, сохраняет файлы, ...
Я угадываю Play! автоматически генерирует геттеры и сеттеры, но похоже, что он также меняет мои собственные классы.
Я не уверен, что это «ошибка» фреймворка, или я просто неправильно понял концепцию и мне нужно изменить несколько вещей (по крайней мере, переименование «имя» в «dummyName» делает трюк!:))?
Вот трассировки стека:
play.exceptions.UnexpectedException: Unexpected Error
at play.Invoker$Invocation.onException(Invoker.java:244)
at play.Invoker$Invocation.run(Invoker.java:286)
at Invocation.HTTP Request(Play!)
Caused by: java.lang.VerifyError: class com.deepgray.acq.Acquisition overrides final method getName.()Ljava/lang/String;
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:791)
at play.classloading.ApplicationClassloader.loadApplicationClass(ApplicationClassloader.java:166)
at play.classloading.ApplicationClassloader.loadClass(ApplicationClassloader.java:84)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at play.classloading.ApplicationClasses.getAssignableClasses(ApplicationClasses.java:67)
at play.classloading.ApplicationClassloader.getAssignableClasses(ApplicationClassloader.java:455)
at play.templates.GroovyTemplateCompiler.endTag(GroovyTemplateCompiler.java:342)
at play.templates.TemplateCompiler.generate(TemplateCompiler.java:93)
at play.templates.TemplateCompiler.compile(TemplateCompiler.java:15)
at play.templates.GroovyTemplateCompiler.compile(GroovyTemplateCompiler.java:41)
at play.templates.TemplateCompiler.compile(TemplateCompiler.java:28)
at play.templates.TemplateLoader.load(TemplateLoader.java:82)
at play.mvc.Router.parse(Router.java:162)
at play.mvc.Router.parse(Router.java:190)
at play.mvc.Router.parse(Router.java:164)
at play.mvc.Router.load(Router.java:48)
at play.mvc.Router.detectChanges(Router.java:219)
... 1 more
Да, это то, что я делаю. Я хотел использовать Play! просто для того, чтобы легко предложить моему приложению некоторые веб-возможности. Недостатком является то, что он должен быть полностью разработан в рамках. Надеюсь, я смогу начать (а) задание, в котором работает мое приложение, но я считаю, что это плохое использование Play! ... – Matthieu