- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
您好,我正在尝试从 Ant 运行一个简单的基于 jax-ws soap/wsdl 的 Web 服务。如果我使用纯“java”从命令行运行程序,程序运行良好。 Ant 爆炸了。我在 Windows 7 32 位操作系统上使用 JDK jdk1.6.0.26 32 位。我的 Ant 是 1.7.1。
这是构建文件
<?xml version="1.0"?>
<project name="WebSvcUpAndRunning" default="run" >
<description>Compiles and runs a simple program</description>
<property name="project.name" value="${ant.project.name}" />
<property name="project.version" value="1.0" />
<property name="main.class" value="ch01.ts.TimeServerPublisher" />
<property name="build.dir" location="." />
<property name="dist.dir" location="${build.dir}/dist" />
<property name="target.name" value="${project.name}-${project.version}.jar" />
<property name="target.jar" location="${dist.dir}/${target.name}" />
<property name="src.dir" location="${build.dir}/src" />
<property name="build.classes.dir" location="${build.dir}/classes" />
<target name="init">
<mkdir dir="${build.classes.dir}" />
<mkdir dir="${dist.dir}" />
</target>
<path id="compile.classpath">
<fileset dir="lib">
<include name="*.jar" />
</fileset>
<fileset dir="C:\jdks\jdk1.6.0_26\jre\lib">
<include name="*.jar" />
</fileset>
</path>
<target name="compile" depends="init" description="Compiles the source code">
<javac
destdir="${build.classes.dir}"
debug="true"
srcdir="${src.dir}">
<classpath refid="compile.classpath" />
</javac>
</target>
<target name="clean" depends="init"
description="Removes the temporary directories used">
<delete dir="${build.classes.dir}" />
<delete dir="${dist.dir}" />
</target>
<target name="run" depends="compile" description="Runs the program">
<echo level="warning" message="running" />
<java
classname="${main.class}">
<classpath>
<path refid="compile.classpath" />
<pathelement location="${build.classes.dir}" />
</classpath>
</java>
</target>
<target name="jar" depends="compile" description="Creates the JAR file">
<property name="manifest.mf" location="${src.dir}/META-INF/manifest.mf" />
<manifest file="${manifest.mf}" >
<attribute name="Built-By" value="${user.name}"/>
<attribute name="Sealed" value="true"/>
<attribute name="Main-Class" value="${main.class}"/>
</manifest>
<jar destfile="${target.jar}"
duplicate="preserve"
manifest="${manifest.mf}">
<fileset dir="${build.classes.dir}"/>
</jar>
</target>
<path id="run.jar.classpath">
<path refid="compile.classpath"/>
<pathelement location="${target.jar}"/>
</path>
<!-- Run Java using executable Jar -->
<target name="run-jar" depends="jar" description="Runs the program">
<echo level="warning" message="running" />
<java
classname="${main.class}"
classpathref="run.jar.classpath">
</java>
</target>
</project>
...这是我收到的错误代码..
[java] java.lang.Error: javax.xml.datatype.DatatypeConfigurationException: Provider org.apache.xerces.jaxp
.datatype.DatatypeFactoryImpl not found
[java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:194)
[java] at org.apache.tools.ant.taskdefs.Java.run(Java.java:764)
[java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:218)
[java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:132)
[java] at org.apache.tools.ant.taskdefs.Java.execute(Java.java:105)
[java] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[java] at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:597)
[java] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[java] at org.apache.tools.ant.Task.perform(Task.java:348)
[java] at org.apache.tools.ant.Target.execute(Target.java:357)
[java] at org.apache.tools.ant.Target.performTasks(Target.java:385)
[java] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
[java] at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
[java] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[java] at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
[java] at org.apache.tools.ant.Main.runBuild(Main.java:758)
[java] at org.apache.tools.ant.Main.startAnt(Main.java:217)
[java] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
[java] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
[java] Caused by: java.lang.Error: javax.xml.datatype.DatatypeConfigurationException: Provider org.apache.
xerces.jaxp.datatype.DatatypeFactoryImpl not found
[java] at com.sun.xml.internal.bind.DatatypeConverterImpl.<clinit>(DatatypeConverterImpl.java:775)
[java] at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$3.run(JAXBContextImpl.java:262)
[java] at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$3.run(JAXBContextImpl.java:260)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:260)
[java] at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImp
l.java:1100)
[java] at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:143)
[java] at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:110)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:597)
[java] at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:202)
[java] at javax.xml.bind.ContextFinder.find(ContextFinder.java:376)
[java] at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574)
[java] at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:522)
[java] at com.sun.xml.internal.ws.spi.ProviderImpl$2.run(ProviderImpl.java:209)
[java] at com.sun.xml.internal.ws.spi.ProviderImpl$2.run(ProviderImpl.java:206)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at com.sun.xml.internal.ws.spi.ProviderImpl.getEPRJaxbContext(ProviderImpl.java:206)
[java] at com.sun.xml.internal.ws.spi.ProviderImpl.<clinit>(ProviderImpl.java:77)
[java] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[java] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
[java] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.
java:27)
[java] at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
[java] at java.lang.Class.newInstance0(Class.java:355)
[java] at java.lang.Class.newInstance(Class.java:308)
[java] at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:31)
[java] at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:128)
[java] at javax.xml.ws.spi.Provider.provider(Provider.java:83)
[java] at javax.xml.ws.Endpoint.publish(Endpoint.java:170)
[java] at ch01.ts.TimeServerPublisher.main(TimeServerPublisher.java:8)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:597)
[java] at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:217)
[java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:152)
[java] ... 20 more
[java] Caused by: javax.xml.datatype.DatatypeConfigurationException: Provider org.apache.xerces.jaxp.datat
ype.DatatypeFactoryImpl not found
[java] at javax.xml.datatype.DatatypeFactory.newInstance(DatatypeFactory.java:137)
[java] at com.sun.xml.internal.bind.DatatypeConverterImpl.<clinit>(DatatypeConverterImpl.java:773)
[java] ... 57 more
[java] Caused by: java.lang.ClassNotFoundException: org.apache.xerces.jaxp.datatype.DatatypeFactoryImpl
[java] at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1400)
[java] at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1341)
[java] at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1094)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
[java] at javax.xml.datatype.FactoryFinder.getProviderClass(FactoryFinder.java:115)
[java] at javax.xml.datatype.FactoryFinder.newInstance(FactoryFinder.java:146)
[java] at javax.xml.datatype.FactoryFinder.findJarServiceProvider(FactoryFinder.java:298)
[java] at javax.xml.datatype.FactoryFinder.find(FactoryFinder.java:223)
[java] at javax.xml.datatype.DatatypeFactory.newInstance(DatatypeFactory.java:131)
[java] ... 58 more
[java] --- Nested Exception ---
[java] java.lang.Error: javax.xml.datatype.DatatypeConfigurationException: Provider org.apache.xerces.jaxp
.datatype.DatatypeFactoryImpl not found
[java] at com.sun.xml.internal.bind.DatatypeConverterImpl.<clinit>(DatatypeConverterImpl.java:775)
[java] at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$3.run(JAXBContextImpl.java:262)
[java] at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$3.run(JAXBContextImpl.java:260)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:260)
[java] at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImp
l.java:1100)
[java] at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:143)
[java] at com.sun.xml.internal.bind.v2.ContextFactory.createContext(ContextFactory.java:110)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:597)
[java] at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:202)
[java] at javax.xml.bind.ContextFinder.find(ContextFinder.java:376)
[java] at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574)
[java] at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:522)
[java] at com.sun.xml.internal.ws.spi.ProviderImpl$2.run(ProviderImpl.java:209)
[java] at com.sun.xml.internal.ws.spi.ProviderImpl$2.run(ProviderImpl.java:206)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at com.sun.xml.internal.ws.spi.ProviderImpl.getEPRJaxbContext(ProviderImpl.java:206)
[java] at com.sun.xml.internal.ws.spi.ProviderImpl.<clinit>(ProviderImpl.java:77)
[java] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[java] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
[java] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.
java:27)
[java] at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
[java] at java.lang.Class.newInstance0(Class.java:355)
[java] at java.lang.Class.newInstance(Class.java:308)
[java] at javax.xml.ws.spi.FactoryFinder.newInstance(FactoryFinder.java:31)
[java] at javax.xml.ws.spi.FactoryFinder.find(FactoryFinder.java:128)
[java] at javax.xml.ws.spi.Provider.provider(Provider.java:83)
[java] at javax.xml.ws.Endpoint.publish(Endpoint.java:170)
[java] at ch01.ts.TimeServerPublisher.main(TimeServerPublisher.java:8)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:597)
[java] at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:217)
[java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:152)
[java] at org.apache.tools.ant.taskdefs.Java.run(Java.java:764)
[java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:218)
[java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:132)
[java] at org.apache.tools.ant.taskdefs.Java.execute(Java.java:105)
[java] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
[java] at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:597)
[java] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
[java] at org.apache.tools.ant.Task.perform(Task.java:348)
[java] at org.apache.tools.ant.Target.execute(Target.java:357)
[java] at org.apache.tools.ant.Target.performTasks(Target.java:385)
[java] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
[java] at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
[java] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[java] at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
[java] at org.apache.tools.ant.Main.runBuild(Main.java:758)
[java] at org.apache.tools.ant.Main.startAnt(Main.java:217)
[java] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
[java] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
[java] Caused by: javax.xml.datatype.DatatypeConfigurationException: Provider org.apache.xerces.jaxp.datat
ype.DatatypeFactoryImpl not found
[java] at javax.xml.datatype.DatatypeFactory.newInstance(DatatypeFactory.java:137)
[java] at com.sun.xml.internal.bind.DatatypeConverterImpl.<clinit>(DatatypeConverterImpl.java:773)
[java] ... 57 more
[java] Caused by: java.lang.ClassNotFoundException: org.apache.xerces.jaxp.datatype.DatatypeFactoryImpl
[java] at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1400)
[java] at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1341)
[java] at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1094)
[java] at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
[java] at javax.xml.datatype.FactoryFinder.getProviderClass(FactoryFinder.java:115)
[java] at javax.xml.datatype.FactoryFinder.newInstance(FactoryFinder.java:146)
[java] at javax.xml.datatype.FactoryFinder.findJarServiceProvider(FactoryFinder.java:298)
[java] at javax.xml.datatype.FactoryFinder.find(FactoryFinder.java:223)
[java] at javax.xml.datatype.DatatypeFactory.newInstance(DatatypeFactory.java:131)
[java] ... 58 more
[java] Java Result: -1
最佳答案
org.apache.xerces.jaxp.datatype.DatatypeFactoryImpl
不在您的类路径中。 java 6 jvm 确实包含一个嵌入在 rt.jar 中的 Xerces 实现,但包名称不同 - 它是:com.sun.org.apache.xerces.internal.jaxp.datatype
您可以在代码中更改预期的 DatatypeFactoryImpl 或通过将单独的 Xerces jar 添加到类路径来覆盖 Xerces 实现。要覆盖 jvm 使用的类,您可以将任何版本的 xerces.jar 添加到 JVm 安装/lib/endorsed 目录。
在 http://xml.apache.org/xalan-j/faq.html#faq-N100EF 上有更多详细信息和 xerces serialization in Java 6
关于java - 如何在命令行上从 ant java 任务运行 jax-ws web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14606350/
这个问题可能不是很清楚,所以让我用一个例子来说明我的意思。说我要复制几个文件夹: ... 但是我需要从如下所示的文本文件中加载它们,而不是在脚本中对这些文件夹
ant 和 ant clean all 的区别? 请任何人都可以清楚地说明何时使用 Ant 和 Ant 清洁所有。 C:> Ant c:> Ant 清理所有 最佳答案 “ant”运行项目的默认目标。
我想转换如下: 到: aoeu 的值可以包含任意数量的逗号分隔元素。 我可以使用 groovy Ant 任务,但不能使用 ant-contrib 中的任何
我看到了 this相关问题,但我的情况不同,所以再次询问。基本上,我必须按特定顺序运行 12 个 ant 文件。对于每个 ant 文件,我选择不同的目标,例如“创建”或“构建并部署全部”。如何创建一个
我可以编写一个在从另一个 ant 任务执行时获取参数的 ant 任务吗? 我通常试图实现的目标是重用现有任务不同的参数。 我不知道的是: ant中有这样的子任务吗? 它可以带参数吗? 如何以及在何处指
给定一个 ant 文件集,我需要对其执行一些类似 sed 的操作,将其压缩为多行字符串(每个文件有效一行),并将结果输出到文本文件。 我在寻找什么 Ant 任务? 最佳答案 Ant script ta
我有一个包含 jars 等绝对路径的属性文件。当使用这些属性时,它们以构建文件中指定的 basedir 为前缀。 我如何获得绝对路径? build.properties: mylib=/lib/myl
我有一个任务: someString someOtherString 如何连接 s
我遇到的情况涉及运行带有可选参数的 ant 构建,这些参数总是被指定但并不总是被定义,就像这样 ant -DBUILD_ENVIRONMENT=test -Dusername_ext= -Dconf.
我正在寻找一种在 Ant 文件中包含 .jar 的方法,以便我可以立即使用它并在我的目标中调用它的方法。 就我而言,它是 ant-contrib-1.0b3.jar . 最佳答案 最好的方法是将 An
我在 ant 方面比较新,在学校我有一个作业来做一个构建文件。我的问题之一是将其名称(或路径)作为 ant 参数的文件复制到“/foldercopy”。我需要做类似的事情: Ant cpfile文件.
亲爱的,我目前在检索foreach循环中设置的属性的值时遇到一些问题。也许你们中的一个可以帮助我... 目的是检查自从生成相应的jar之后,是否已修改文件夹的一个文件。这样,我知道是否必须再次生成ja
我想创建一个宏: 然后使用它: 但是,我想为隐式元素指定一个默认值......类似于: 所以我可以这样使用它:
我想将 ANT、JavaSDK 和 FlexSDK 包含到我的项目目录中。我需要我公司的人能够从源代码编译。 我有一个以以下内容开头的 build.bat 文件: ant blah/blah/blah
我想对目录中的每个文件使用 ant 脚本集只读 但 exec 不允许 filelist: The typ
如果我以 root 身份运行任务,有没有办法检测它是否以 root 身份运行并以不同的用户身份运行某些任务。 我有一些任务需要以 root 身份运行,但其他任务只需要以当前用户身份运行。 最佳答案 如
是否可以通过ant任务使用JUnit 4.6的新MaxCore运行程序? 最佳答案 从4.6开始,不幸的是没有。您需要创建自己的自定义Ant任务才能利用MaxCore功能。 关于ant - Ant J
我有一个关于 Ant 及其对环境变量的处理的问题。 为了说明我有一个小样本。 给定 Ant 构建文件 test.xml:
该文件如下所示: a1,b1 a2,b2 ... 我知道值“a2”。 如何将值“b2”转换为属性值。 我知道如何通过以下方式选择包含“a2”的行: 但是不知道如何将属性值设置为“b2”。 我
Ant 属性可以通过属性文件设置,从属性文件解析其他属性吗? 例如,我可以这样做: 和 prop2 变成“in_test_xml1”。那挺好的。 但在这种情况下,当使用输入属性文件时: prop1
我是一名优秀的程序员,十分优秀!