내 주석 프로세서에서 Velocity Escape 도구를 사용하는 데 문제가 있습니다. 무엇보다도, 나는 Annotation 프로세서가 속도만으로 잘 작동하므로 설정이 정확하다는 것을 알고 있습니다. 나는 문자를 사용하여 문자열을 사용할 때 생성 된 소스에 문제가 있기 시작했습니다. 그래서 저는 인터넷으로 가서 Velocity에 대해 EscapeTool을 발견했습니다. 문서가 구성에 대해별로 좋지 않다고 말할 수 있습니다.Java의 Velocity EscapeTool
ToolManager velocityToolManager = new ToolManager();
velocityToolManager.configure("velocity-tools.xml");
VelocityContext vc =
new VelocityContext(velocityToolManager.createContext());
을하지만 구성 부분에서 다음과 같은 오류를 받고 있어요 :
java.lang.RuntimeException: There was an error while parsing the InputStream
at org.apache.velocity.tools.config.XmlFactoryConfiguration.read(XmlFactoryConfiguration.java:132)
at org.apache.velocity.tools.config.FileFactoryConfiguration.read(FileFactoryConfiguration.java:140)
at org.apache.velocity.tools.config.FileFactoryConfiguration.read(FileFactoryConfiguration.java:116)
at org.apache.velocity.tools.config.FileFactoryConfiguration.read(FileFactoryConfiguration.java:91)
at org.apache.velocity.tools.config.FileFactoryConfiguration.read(FileFactoryConfiguration.java:69)
at org.apache.velocity.tools.config.FileFactoryConfiguration.read(FileFactoryConfiguration.java:59)
at org.apache.velocity.tools.config.ConfigurationUtils.getDefaultTools(ConfigurationUtils.java:79)
at org.apache.velocity.tools.config.ConfigurationUtils.getAutoLoaded(ConfigurationUtils.java:176)
at org.apache.velocity.tools.ToolManager.autoConfigure(ToolManager.java:74)
at org.apache.velocity.tools.ToolManager.<init>(ToolManager.java:68)
at org.apache.velocity.tools.ToolManager.<init>(ToolManager.java:54)
at games.jwrestling.core.annotation.processor.CardAnnotationProcessor.process(CardAnnotationProcessor.java:116)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:793)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:722)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1700(JavacProcessingEnvironment.java:97)
at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1029)
at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1163)
at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1108)
at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:824)
at com.sun.tools.javac.main.Main.compile(Main.java:439)
at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:132)
at org.bsc.maven.plugin.processor.AbstractAnnotationProcessorMojo.executeWithExceptionsHandled(AbstractAnnotationProcessorMojo.java:424)
at org.bsc.maven.plugin.processor.AbstractAnnotationProcessorMojo.execute(AbstractAnnotationProcessorMojo.java:250)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.xml.sax.SAXParseException; lineNumber: 23; columnNumber: 58; Error at line 23 char 58: org.apache.velocity.tools.config.Data
at org.apache.commons.digester.Digester.createSAXException(Digester.java:3181)
at org.apache.commons.digester.Digester.createSAXException(Digester.java:3207)
at org.apache.commons.digester.Digester.startElement(Digester.java:1456)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:506)
at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1303)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2717)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568)
at org.apache.commons.digester.Digester.parse(Digester.java:1765)
at org.apache.velocity.tools.config.XmlFactoryConfiguration.read(XmlFactoryConfiguration.java:128)
... 43 more
Caused by: java.lang.ClassNotFoundException: org.apache.velocity.tools.config.Data
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230)
at org.apache.commons.digester.ObjectCreateRule.begin(ObjectCreateRule.java:205)
at org.apache.commons.digester.Rule.begin(Rule.java:175)
at org.apache.commons.digester.Digester.startElement(Digester.java:1453)
... 56 more
나는 나를 시작하려면 위치를 기억하지 않는, 몇 가지 코드를 발견 할 수 있었다 종속성 문제라고 생각했지만 의존성은 다음과 같습니다.
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-tools</artifactId>
<version>2.0</version>
</dependency>
org.apache.ve locity.tools.config.Data는 velocity-tools jar에 포함되어 있습니다.
코드 here (repo에 댓글을 달았 음)을 찾을 수 있습니다.
소스가 유용 할 경우 https://[email protected]/javydreamercsw/jwrestling에서 체크 아웃 할 수 있습니다.
어떤 도움도 환영합니다!
업데이트 : 여기 속도-tools.xml의 내용, 속도 공구 단지 내에있는 하나의 사본입니다
<tools>
<data type="number" key="TOOLS_VERSION" value="2.0"/>
<data type="boolean" key="GENERIC_TOOLS_AVAILABLE" value="true"/>
<toolbox scope="application">
<tool class="org.apache.velocity.tools.generic.AlternatorTool"/>
<tool class="org.apache.velocity.tools.generic.DisplayTool"/>
<tool class="org.apache.velocity.tools.generic.MathTool"/>
<tool class="org.apache.velocity.tools.generic.NumberTool"/>
<tool class="org.apache.velocity.tools.generic.ComparisonDateTool"/>
<tool class="org.apache.velocity.tools.generic.ClassTool"/>
<tool class="org.apache.velocity.tools.generic.ConversionTool"/>
<tool class="org.apache.velocity.tools.generic.EscapeTool"/>
<tool class="org.apache.velocity.tools.generic.FieldTool"/>
<tool class="org.apache.velocity.tools.generic.ListTool"/>
<tool class="org.apache.velocity.tools.generic.ResourceTool"/>
<tool class="org.apache.velocity.tools.generic.SortTool"/>
</toolbox>
<toolbox scope="request">
<tool class="org.apache.velocity.tools.generic.LoopTool"/>
<tool class="org.apache.velocity.tools.generic.ContextTool"/>
<tool class="org.apache.velocity.tools.generic.LinkTool"/>
<tool class="org.apache.velocity.tools.generic.RenderTool"/>
</toolbox>
</tools>
나는이 문제를 "Maven"또는 "Classpath issue"로 태그해야한다고 생각한다. 나는 Valocity 자체와 함께해야 할 일이 있다고 생각하지 않는다. 우리는 거의 같은 의존성을 가지고 있습니다. –
btw : 우리는 속도 도구를 "활성화"하기 위해 추가 코딩을하지 않았습니다. –
특별한 구성없이 시도해보고 어떻게 진행되는지 살펴 보겠습니다. – javydreamercsw