Генерация класса JAXB, который реализует интерфейс

Чтобы заставить текстовый редактор Visual Studio показать слабую строку на 80-м столбце, Вы открываете RegEdit и определяете местоположение следующего:

Редактор HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Text

заметьте, что 9.0 для Visual Studio 2008. Необходимо поместить 8.0, если у Вас есть Visual Studio 2005.

Вы создаете новую Строковую стоимость под названием Руководства и вводите следующее значение:

RGB (128,0,0) 80

можно скорректировать цвет RGB к значению, которое Вы любите. Номер 80 является столбцом, в котором Вы хотите, чтобы строка появилась. Можно добавить другую строку (хотя я не вижу, как это может помочь) как этот:

RGB (128,0,0) 2,80

Это заставит две строки появиться, один в 2th столбце и один в 80-м столбце.

50
задан Radek Postołowicz 23 January 2017 в 09:50
поделиться

4 ответа

Плыгин XJC с некоторым описанием - это ответ на вашу проблему, просто нужно найти тот, который работает. Лучший их источник здесь:

https://jaxb2-commons.dev.java.net/

В частности, этот:

https://jaxb2-commons.dev.java.net / interface-insert /

-3
ответ дан 7 November 2019 в 11:06
поделиться

Это может быть излишним для вашей ситуации, но я сделал это с помощью AspectJ (мы уже использовали аспекты в этом проекте, поэтому у нас уже была зависимость и воздействие).

Вы ' d объявить аспект в строках:

public aspect MyAspect
{
    declare parents: 
        com.foo.generated.Adult
    implements com.foo.Person;

    declare parents: 
        com.foo.generated.Kid
    implements com.foo.Person;
}

, который добавит интерфейс com.foo.Person к классам com.foo.generated.Adult и com. foo.generated.Kid

Возможно, для вашей цели это будет лишним, но у нас это сработало.

8
ответ дан 7 November 2019 в 11:06
поделиться

В документации для плагина вставки интерфейса предлагается следующее

[ Чтобы вызвать xjc с помощью подключаемого модуля вставки интерфейса из командной строки, вы можете написать:

java -cp $JAXB_HOME/share/lib/xjc-if-ins.jar -extension -Xifins schema

]

Я предполагаю, что вы вызываете основной метод неправильного класса - com.sun.tools.xjc.XJCFacade. Вероятно, вам следует повторить попытку с точным синтаксисом.

Вот ссылка на другой форум, где обсуждается похожий вопрос. http://forums.java.net/jive/message.jspa?messageID=220686

  • Я бы опубликовал это как комментарий, но у меня недостаточно очков для комментариев.
0
ответ дан 7 November 2019 в 11:06
поделиться

В моем случае вызов командной строки через java -jar работает:

java -jar $ somepath / jaxb-xjc.jar -classpath $ somepath / xjc-if-ins.jar my.xsd -d $ destdir -b $ bindingconfig -p $ желаемый пакет -extension -Xifins

Однако при выполнении муравьиной задачи xjc ошибка остается. Приведенное сообщение об ошибке вызывает раздражение, поскольку настоящая причина в моем случае - неправильный номер версии в файле класса, который пытается загрузить муравей (см. Трассировку стека ниже). Это правильное сообщение об ошибке появляется только при добавлении в ANT_OPTS следующего: -Dcom.sun.tools.xjc.Options.findServices = true

[xjc] java.lang.UnsupportedClassVersionError: Bad version number in .class file
[xjc]     at java.lang.ClassLoader.defineClass1(Native Method)
[xjc]     at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
[xjc]     at org.apache.tools.ant.AntClassLoader.defineClassFromData(AntClassLoader.java:1134)
[xjc]     at org.apache.tools.ant.AntClassLoader.getClassFromStream(AntClassLoader.java:1320)
[xjc]     at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1376)
[xjc]     at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1336)
[xjc]     at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1074)
[xjc]     at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
[xjc]     at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
[xjc]     at com.sun.tools.xjc.Options.findServices(Options.java:936)
[xjc]     at com.sun.tools.xjc.Options.getAllPlugins(Options.java:336)
[xjc]     at com.sun.tools.xjc.Options.parseArgument(Options.java:632)
[xjc]     at com.sun.tools.xjc.Options.parseArguments(Options.java:742)
[xjc]     at com.sun.tools.xjc.XJC2Task._doXJC(XJC2Task.java:444)
[xjc]     at com.sun.tools.xjc.XJC2Task.doXJC(XJC2Task.java:434)
[xjc]     at com.sun.tools.xjc.XJC2Task.execute(XJC2Task.java:369)
[xjc]     at com.sun.istack.tools.ProtectedTask.execute(ProtectedTask.java:55)
[xjc]     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
[xjc]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[xjc]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[xjc]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[xjc]     at java.lang.reflect.Method.invoke(Method.java:585)
[xjc]     at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[xjc]     at org.apache.tools.ant.Task.perform(Task.java:348)
[xjc]     at org.apache.tools.ant.Target.execute(Target.java:390)
[xjc]     at org.apache.tools.ant.Target.performTasks(Target.java:411)
[xjc]     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1360)
[xjc]     at org.apache.tools.ant.Project.executeTarget(Project.java:1329)
[xjc]     at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[xjc]     at org.apache.tools.ant.Project.executeTargets(Project.java:1212)
[xjc]     at org.apache.tools.ant.Main.runBuild(Main.java:801)
[xjc]     at org.apache.tools.ant.Main.startAnt(Main.java:218)
[xjc]     at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
[xjc]     at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
[xjc]
[xjc] failure in the XJC task. Use the Ant -verbose switch for more details
1
ответ дан 7 November 2019 в 11:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: