如何在编写XML文件时忽略DTDvalidation但保留Doctype?

我正在研究一个系统,该系统应该能够读取任何(或至少是任何格式良好的)XML文件,操作一些节点并将它们写回到同一个文件中。 我希望我的代码尽可能通用,我不想要 在我的代码中的任何位置对模式/ Doctype信息进行硬编码引用。 doctype信息位于源文档中,我想保留该doctype信息,而不是在我的代码中再次提供。 如果文档没有DocType,我不会添加一个。 除了我的几个节点之外,我根本不关心这些文件的forms或内容。 自定义EntityResolvers或StreamFilters以省略或以其他方式操纵源信息(已经遗憾的是,命名空间信息似乎无法从声明它的文档文件中访问,但我可以使用uglier XPath进行管理) DTDvalidation。 我没有引用的DTD,我不想包含它们,并且在不知道它们的情况下完全可以进行节点操作。 目的是使源文件完全不变,除了通过XPath检索的已更改的节点。 我想逃避标准的javax.xml。 我到目前为止的进展: DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setAttribute(“http://xml.org/sax/features/namespaces”, true); factory.setAttribute(“http://xml.org/sax/features/validation”, false); factory.setAttribute(“http://apache.org/xml/features/nonvalidating/load-dtd-grammar”, false); factory.setAttribute(“http://apache.org/xml/features/nonvalidating/load-external-dtd”, false); factory.setNamespaceAware(true); factory.setIgnoringElementContentWhitespace(false); factory.setIgnoringComments(false); factory.setValidating(false); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(new InputSource(inStream)); 这会成功将XML源加载到org.w3c.dom.Document中,忽略DTDvalidation。 我可以做我的替换然后我用 Source source = new DOMSource(document); Result result = new StreamResult(getOutputStream(getPath())); // Write the DOM […]

Tomcat Jersey Eclipse ClassNotFound org.glassfish.jersey.servlet.ServletContainer

我正在运行hello world示例。 但是,我使用的是2.7版本。 在maven pom.xml上我有 4.0.0 com.mydomain.restful AdvertServer 0.0.1-SNAPSHOT Advert Server org.glassfish.jersey jersey-bom 2.7 pom import com.google.code.gson gson 2.2.4 javax javaee-web-api 6.0 javax.ws.rs javax.ws.rs-api 2.0 provided org.glassfish.jersey.core jersey-client 2.7 org.glassfish.jersey.containers jersey-container-servlet-core 2.7 src src **/*.java maven-compiler-plugin 3.0 1.7 1.7 我尝试从命令行运行servlet,并在Eclipse上运行Server插件。 我犯了同样的错误: java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.ServletContainer at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:525) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:507) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:126) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1099) […]

哪个新的首先执行 – 在构造函数中还是在外?

如果我定义一个类如下: 公共类myClass { private x = new anotherClass(); 私人y; public myClass(){ y = new anotherClass(); } } 哪个变量会更早获得实例? x还是y? 并且,在构造函数之外分配变量是不建议的吗?

UUID蓝牙和Android设备

我正在尝试开发一个连接两个设备的Android设备的应用程序,但问题是我只能连接(使用蓝牙)PC蓝牙或设备与Android之外的其他操作系统。 我认为问题是UUID,现在我正在使用BluetoothCommandService.java : private static final UUID MY_UUID = UUID.fromString(“00001101-0000-1000-8000-00805f9b34fb”); 然后: private class ConnectThread extends Thread { private final BluetoothSocket mmSocket; private final BluetoothDevice mmDevice; public ConnectThread(BluetoothDevice device) { mmDevice = device; BluetoothSocket tmp = null; // Get a BluetoothSocket for a connection with the // given BluetoothDevice try { tmp = device.createRfcommSocketToServiceRecord(MY_UUID); } catch […]

Java Date排序方法?

我有一个字符串数组,格式为ex:’2010-05-04 11:26:46 +0530’。 如何检查数组中的特定日期是>今天? 谢谢

系统未扩展以支持并发用户

我在扩展系统上的并发用户数时遇到问题。 根据我的测试,缩放并发用户数似乎直接增加了线性关系中请求的持续时间。 我正在运行部署在具有16Gb RAM的(虚拟)Ubuntu四核机器上的Java Web应用程序。 我正在使用Apache Tomcat 7和MySQl 5.5数据库。 Tomcat和MySQL正在使用默认设置 – 我没有以任何方式配置它们。 我正在使用Apache Benchmark运行一些测试,最终创建一个SQL查询来返回一行数据,其响应大小非常小。 我使用Spring的JDBCTemplate和Apache Commons BasicDataSource。 spring bean的配置如下所示。 com.mysql.jdbc.Driver ${database.username} ${database.password} ${database.url}/${database.schema} 创建几个查询的我的Java方法使用@Transactional注释。 这些是我的测试结果: 1请求需要0.2秒。 10个请求(同时执行)需要0.9秒。 因此,您可以看到我的应用程序没有缩放。 我不确定问题的原因是什么。 任何人都可以看到我做错了什么或建议我可以进一步调查的方法吗? 提前致谢, 菲尔 更新 更多指标: 1请求,并发1 = 0.22s 10个请求,并发10 = 0.6秒(平均值),0.5(最小值) 100个请求,并发100 = 7(平均值),3.7(最小值) 300个请求,并发300 = 12s(平均值),4.3(min) 300个请求,并发300 = 18s(平均值),6.4(min) 响应大小为1kb。 尝试相同的请求并更改并发性: 300个请求,并发8 =总时间:14.9秒 300个请求,并发20 =总时间:15.3秒 […]

SWT标签大小未正确更新

我是Java / SWT的新手。 我在使用SWT标签时遇到了一些麻烦。 当我更新标签上的文本时,其大小未正确更新(标签被剪切,与原始大小相关)。 但是,如果我在对话框中执行非常小的resize,则会正确更新大小。 基本上,我使用默认文本创建标签,然后,当我加载数据时,我使用真实文本更新标签,该标签比原始文本更大。 我试着没有运气就调用了label.update()和label.redraw() 。

如何禁用JPanel以使其无法在Java中更改大小

我在布局中有几个JPanels,每当我用鼠标手动更改JFrame的大小时,它会拉伸JPanels并使其看起来很乱。 有没有办法禁用它?

如何列出最近/正在运行的应用程序

按住手机上的主屏幕按钮会弹出一个弹出窗口,显示最近的应用程序。 有谁知道如何通过代码执行相同的操作? 我需要能够在列表视图中选择一个。

Java中的字符编码

在eclipse中,我将默认编码更改为ISO-8859-1。 然后我写了这个: String str = “Русский язык “; PrintStream ps = new PrintStream(System.out, true, “UTF-8”); ps.print(str); 它应该正确打印String ,因为我指定UTF-8编码。 但是,它不是打印。