我需要创建将在两种语言之间翻译一些单词的WEB服务,所以我创建了一个接口:
@WebService
public interface Translator {
@WebMethod
String translate(String word, String originalLanguage, String targetLanguage);
}
@WebService(endpointInterface = "source.Translator")
public class TranslatorImpl implements Translator{
@Override
public String translate(String word, String originalLanguage, String targetLanguage) {
return word + originalLanguage +" butterfly " + targetLanguage + " baboska ";
}
}
我想您的问题是“我在这个WebMethod中解析XML文件吗?”与webservices没有多大关系,但与软件设计和体系结构有很大关系。遵循“单一职责”原则,您应该在另一个类中处理XML。
关于xml文件的读取,这里有很多问题都有很好的答案,例如Java读取xml文件。
顺便问一下:你想过使用数据库吗?在添加新的翻译时,它比XML文件更灵活,并且在处理可能被更改的数据时(在将来添加许多新条目),它被视为最佳实践。
public class XmlDataSource {
public String getTranslation(String original) throws Exception {
Document d = readData();
XPathFactory xPathfactory = XPathFactory.newInstance();
XPath xpath = xPathfactory.newXPath();
XPathExpression expr = xpath.compile("/dictionary/entry/translation[../original/text() = '" + original + "']");
String translated = (String) expr.evaluate(d, XPathConstants.STRING);
return translated;
}
private Document readData() throws Exception {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
File datafile = new File("your/path/to/translations.xml");
return documentBuilder.parse(new FileInputStream(datafile));
}
}
示例中的xpath依赖于如下结构:
<?xml version="1.0" encoding="UTF-8"?>
<dictionary>
<entry>
<original>butterfly</original>
<translation>Schmetterling</translation>
</entry>
<entry>
<original>flower</original>
<translation>Blume</translation>
</entry>
<entry>
<original>tree</original>
<translation>Baum</translation>
</entry>
</dictionary>
然后您可以调用webservice中的datasource来翻译所请求的单词:
@Override
public String translate(String word, String originalLanguage, String targetLanguage) {
XmlDataSource dataSource = new XmlDataSource();
return dataSource.getTranslation(word);
}
问题内容: 我努力了: 找到错误消息: 另外,我尝试使用并得到了相同的错误消息,甚至使用beanshell脚本也是如此: 问题答案: 尝试以下方法: 将Beanshell Sampler添加到您的测试计划 将以下代码放入采样器的“脚本”区域: 将调试采样器和查看结果树侦听器添加到您的测试计划 运行测试 确保Beanshell Sampler为绿色并且已设置变量。如果不是,请查看 jmeter.lo
问题内容: 我想知道使用node.js消费SOAP XML Web服务的最佳方法是什么 谢谢! 问题答案: 您没有太多选择。 您可能需要使用以下之一: node-soap) strong-soap(重写) easysoap
如何在reactor netty服务器中读取请求正文?我想让请求主体确定响应的内容,但在示例代码中找不到这样的示例。 例外 block()/blockFirst()/blockLast()正在阻塞,这在线程reactor-http-nio-2中不受支持 调用者 卷曲http://127.0.0.1:45441/test1/test-d“12312321312”-i-H“内容类型:应用程序/json
问题内容: EMF = Eclipse建模框架 我必须在一个课堂项目中使用EMF。我正在尝试了解如何使用EMF执行以下操作: 读取XML, 将值放入对象。 使用ORM将对象中的值持久保存到数据库中。-完成 使用ORM从数据库获取数据并生成XML。 我需要使用EMF(不知道是什么)和JPA(完成)来完成所有这些操作。 我使用过JAXB,我知道,可以使用JAXB完成,但是(EMF == JAXB)怎么
本文向大家介绍java如何解析/读取xml文件,包括了java如何解析/读取xml文件的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java解析/读取xml文件的方法,供大家参考,具体内容如下 XML文件 Java 代码: 以上就是本文的全部内容,希望对大家的学习有所帮助。
问题内容: 我需要使用Java读取XML文件。它的内容就像 是否有特殊的阅读器/ JAR,还是应该使用 FileInputStream进行 阅读? 问题答案: 另一个建议:尝试使用Commons消化器。这使您可以使用基于规则的方法非常快速地开发解析代码。有一个教程在这里和图书馆可在这里 我也同意Brian和Alzoid的观点,因为JAXB非常适合快速启动和运行。您可以使用JDK附带的xjc绑定编译