XML Beans 使用和测试

本文介绍了一个Java程序,该程序用于创建和解析Cisco防火墙控制器的数据文件。通过实例演示了如何构造数据文件并从XML文件中读取记录。

package com.nokia.fwcontroller.firewalloperator.cisco;

import java.io.FileInputStream;
import java.util.Date;

import noNamespace.DataFile;
import noNamespace.DataFileDownLoadDocument;
import noNamespace.Item;
import noNamespace.ItemList;
import noNamespace.Record;
import noNamespace.RecordList;

public class DataFileTest {

public void testcreate(){
DataFile dataFile= DataFile.Factory.newInstance();
dataFile.setOperation("queryresult");
dataFile.setOperationTarget("SOCKETSP");
dataFile.setTakeEffectTime((new Date()).toString());
ItemList itemList= dataFile.addNewItemList();
Item item1 = itemList.addNewItem();
item1.setIsKey("true");
item1.setItemName("SP名称");
item1.setItemType("String");
Item item2 = itemList.addNewItem();
item2.setIsKey("false");
item2.setItemName("IP地址");
item2.setItemType("String");
Item item3 = itemList.addNewItem();
item3.setIsKey("false");
item3.setItemName("端口号");
item3.setItemType("String");
Item item4 = itemList.addNewItem();
item4.setIsKey("false");
item4.setItemName("应用名称");
item4.setItemType("String");
RecordList recordList = dataFile.addNewRecordList();
for(int i=1;i<4;i++){
Record record = recordList.addNewRecord();
record.addItemValue("SP Name" +i);
record.addItemValue("172.28.46." + i);
record.addItemValue(String.valueOf(5000+i));
record.addItemValue("comment" + i);
}
System.out.println(dataFile.toString());

}

public void testFromFile()throws Exception{
DataFileDownLoadDocument doc=DataFileDownLoadDocument.Factory.parse(new FileInputStream(".\\socketsp.xml"));
DataFile [] data=doc.getDataFileDownLoad().getDataFileArray();
for(int i=0;i<data.length;i++){
System.out.println(data[i].getOperation());
System.out.println(data[i].getOperationTarget());
RecordList rl=data[i].getRecordList();
Record [] rr=rl.getRecordArray();
for(int j=0;j<rr.length;j++){
String [] values=rr[j].getItemValueArray();
for(int k=0;k<values.length;k++){
System.out.println(values[k]);
}
System.out.println("-------------------");
}

}
}

public static void main(String args[]) throws Exception
{
DataFileTest t = new DataFileTest();
t.testcreate();
t.testFromFile();
}
}


### Spring 中 `applicationContext.xml` 的 `beans` 标签报错解决方案 在 Spring 配置文件中,`applicationContext.xml` 是核心配置文件之一。当遇到 `<beans>` 标签报错的情况时,通常可能是由于以下几个常见原因引起的: #### 1. **XML 命名空间声明不正确** 如果 XML 文件头部未正确定义命名空间或者版本号错误,则可能导致解析器无法识别 `<beans>` 栆签。以下是标准的 XML 头部定义方式: ```xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- Bean 定义 --> </beans> ``` 上述代码片段展示了如何正确设置 `xmlns` `xsi:schemaLocation` 属性[^1]。 #### 2. **XSD 文件加载失败** 当 Maven 构建项目时,Spring 默认会尝试从本地 jar 包中读取 XSD 文件。如果未能成功定位到这些资源,可能会引发验证错误。这种情况下可以采取以下措施来解决问题: - 确认网络环境正常并能够访问外部 URL 资源。 - 手动测试目标地址是否可达,例如输入 `http://www.springframework.org/schema/beans/spring-beans.xsd` 到浏览器查看响应结果[^3]。 - 若因离线状态导致问题发生,可考虑将所需 xsd 文件复制至工程目录下并通过相对路径引用它们。 #### 3. **Web 应用场景下的特殊处理** 对于基于 Servlet API 开发的应用程序而言,还需要注意 web.xml 是否已适当指定了 applicationContext.xml 的位置参数。如下所示是一个典型的例子说明了这一点: ```xml <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> ``` 此外需要注意的是 classpath 下面的具体路径写法可能会影响最终效果,请确保实际部署环境中能顺利找到对应的 xml 文件实例[^2]。 综上所述,针对上述提到的各种可能性逐一排查即可有效解决大部分关于 `applicationContext.xml` 中 beans 元素所报告出来的异常状况。 ```java // 示例 Java 类用于演示注入逻辑 @Component public class ExampleComponent { @Autowired private AnotherBean anotherBean; public void doSomething() { System.out.println(anotherBean.getMessage()); } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值