根据之前回答,DOMUtils中并无tostring方法,再次确认cxf2.2.3依赖的XMLUtils文件的printDOM方法在Apache-cxf 3.1.8中被谁代替了
时间: 2024-02-05 13:10:30 浏览: 32
在 Apache CXF 3.1.8 中,XMLUtils 中的 `printDOM` 方法被 `org.apache.cxf.staxutils.StaxUtils#writeNode` 方法所代替。可以使用以下代码来实现类似于 `printDOM` 的功能:
```java
import java.io.StringWriter;
import javax.xml.stream.XMLStreamWriter;
import org.w3c.dom.Node;
import org.apache.cxf.staxutils.StaxUtils;
public class DOMUtils {
public static String toString(Node node) {
StringWriter writer = new StringWriter();
XMLStreamWriter xmlStreamWriter = StaxUtils.createXMLStreamWriter(writer);
StaxUtils.writeNode(node, xmlStreamWriter, true);
return writer.toString();
}
}
```
这段代码将 `Node` 对象转换为字符串,并返回该字符串。
相关问题
cxf2.2.3依赖的XMLUtils文件的printDOM方法在Apache-cxf 3.1.8中被谁代替了
在 Apache CXF 3.1.8 中,XMLUtils 类中的 printDOM 方法已被 org.apache.cxf.helpers.DOMUtils 类中的 toString 方法替换。这个方法可以将一个 DOM 节点转换为字符串形式。使用方法如下:
```java
import org.apache.cxf.helpers.DOMUtils;
// node 是一个 DOM 节点对象
String str = DOMUtils.toString(node);
System.out.println(str);
```
需要注意的是,这个方法返回的字符串不包含 XML 声明 (例如 <?xml version="1.0" encoding="UTF-8"?>),如果需要包含 XML 声明,可以通过以下方式实现:
```java
String str = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + DOMUtils.toString(node);
System.out.println(str);
```
另外,需要注意的是,Apache CXF 3.x 版本相对于 2.x 版本有一些 API 的变化,使用时需要注意。
graalvm debug maven项目
要在Maven项目中使用GraalVM进行调试,需要使用GraalVM自带的调试器`jsadebugd`。下面是具体步骤:
1. 在POM文件中添加以下依赖项:
```xml
<dependency>
<groupId>org.graalvm.sdk</groupId>
<artifactId>graal-sdk</artifactId>
<version>${graalvm.version}</version>
<scope>provided</scope>
</dependency>
```
2. 在Maven命令行中运行以下命令:
```
mvn package -DskipTests -Pnative
```
3. 运行以下命令来启动调试器:
```
jsadebugd --port 8000 --jvmcpuset <cpu-set> --graalvm-home <graalvm-home>
```
其中,`<cpu-set>`是CPU集合的列表,`<graalvm-home>`是GraalVM的根目录。例如:
```
jsadebugd --port 8000 --jvmcpuset 0,1 --graalvm-home /usr/local/graalvm-ce-21.0.0
```
4. 在`pom.xml`文件中添加以下插件配置:
```xml
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>debug</id>
<phase>test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>native-image</executable>
<workingDirectory>${project.basedir}</workingDirectory>
<arguments>
<argument>--debug-attach=<hostname>:8000</argument>
<argument>--no-fallback</argument>
<argument>--allow-incomplete-classpath</argument>
<argument>--report-unsupported-elements-at-runtime</argument>
<argument>--initialize-at-build-time</argument>
<argument>--no-server</argument>
<argument>--verbose</argument>
<argument>--class-path</argument>
<classpath/>
<argument>--enable-all-security-services</argument>
<argument>--enable-url-protocols=http,https</argument>
<argument>--enable-https</argument>
<argument>--initialize-at-run-time=org.apache.maven.cli.MavenCli,org.codehaus.plexus.classworlds.launcher.Launcher</argument>
<argument>--initialize-at-run-time=org.codehaus.plexus.classworlds.realm.ClassRealm</argument>
<argument>--initialize-at-run-time=org.codehaus.plexus.configuration.PlexusConfigurationException</argument>
<argument>--initialize-at-run-time=org.codehaus.plexus.configuration.xml.XmlPlexusConfiguration</argument>
<argument>--initialize-at-run-time=org.codehaus.plexus.configuration.xml.XmlPlexusConfigurationReader</argument>
<argument>--initialize-at-run-time=org.codehaus.plexus.util.xml.XmlStreamReaderException</argument>
<argument>--initialize-at-run-time=org.codehaus.plexus.util.xml.pull.XmlPullParserException</argument>
<argument>--initialize-at-run-time=org.codehaus.plexus.util.xml.pull.XmlPullParserFactory</argument>
<argument>--initialize-at-run-time=org.codehaus.plexus.util.xml.pull.XmlSerializer</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.RepositorySystem</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.RepositorySystemSession</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.artifact.Artifact</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.graph.Dependency</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.graph.DependencyNode</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.repository.ArtifactRepository</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.repository.LocalRepository</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.repository.RemoteRepository</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.resolution.ArtifactResolutionException</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.util.artifact.DefaultArtifact</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.util.graph.DefaultDependencyNode</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.util.graph.manager.DependencyManagerUtils</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.util.graph.manager.SessionDependencyManager</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.util.repository.DefaultAuthenticationSelector</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.util.repository.DefaultMirrorSelector</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.util.repository.DefaultProxySelector</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.util.repository.SimpleArtifactDescriptorPolicy</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.util.xml.DefaultXmlProcessor</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.util.xml.Xpp3DomBuilder</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.util.xml.Xpp3DomUtils</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.util.xml.pull.MXParser</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.util.xml.pull.XmlPullParser</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.util.xml.pull.XmlPullParserException</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.util.xml.pull.XmlPullParserFactory</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.util.xml.pull.XmlSerializer</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.version.Version</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.version.VersionConstraint</argument>
<argument>--initialize-at-run-time=org.sonatype.aether.version.VersionRange</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
```
5. 运行以下命令来启动调试:
```
mvn test
```
这将启动本地服务器,等待调试器连接。打开您的IDE调试器,并将其连接到本地服务器。这样,您就可以调试Maven项目了。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)