首页 新闻 会员 周边

org.xml.sax.SAXParseException 找不到元素 bean 声明

0
悬赏园豆:20 [待解决问题]

尝试使用spring 基本用法的时候,总是这样报错,试了好些办法还是不行,不知道有没有有经验的前辈来解答一下,我把相关的几个文件和xml都传上来,很简单的例子

接口HelloWorld

1 package cim.springNeed;
2 
3 public interface HelloWorld {
4     public void sayHello();
5 }

实例化类HelloWorldBean继承HelloWorld

package cim.springNeed;

public class HelloWorldBean implements HelloWorld{
    private String helloWorld;
    public void sethelloWorld(String helloWorld){
        this.helloWorld=helloWorld;
    }
    public void sayHello(){
        System.out.println(helloWorld);
    }
}

xml配置web.xml

<bean id="helloWorldBean" class="cim.springNeed.HelloWorldBean">  
    <property name="helloWorld">  
        <value>Hello,Welcome To Spring World!</value>  
    </property>  
</bean>

测试代码:

package cim.springNeed;
import org.springframework.beans.factory.BeanFactory;  
import org.springframework.beans.factory.xml.XmlBeanFactory;  
import org.springframework.core.io.ClassPathResource;  
import org.springframework.core.io.Resource; 

public class FirstSpringDemo {
    public static void main(String[] args){
        //-----------BeanFactory IoC容器---------------------//  
        //从classpath路径上装载XML的配置信息 
        Resource r=new ClassPathResource("web.xml");
        //实例化IOC容器,此时容器并未实例化beans-config.xml所定义的各个受管bean.  
        BeanFactory factory=new XmlBeanFactory(r);
        //获取受管bean
        HelloWorld h=(HelloWorld)factory.getBean("helloWorldBean");
        h.sayHello();
    }
}

先表示感谢了哈,应该不是太难,如果熟悉这些用法的话

KarayLee的主页 KarayLee | 初学一级 | 园豆:182
提问于:2014-09-01 19:39
< >
分享
所有回答(1)
0

貌似是你的web.xml有问题,我的web.xml文件定义为:

 1 <?xml version= "1.0" encoding ="UTF-8" ?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4     xsi:schemaLocation="http://www.springframework.org/schema/beans
 5        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
 6     ">
 7     
 8     <bean id="helloWorldBean" class="cim.springNeed.HelloWorldBean">  
 9         <property name="helloWorld">  
10             <value>Hello,Welcome To Spring World!</value>  
11         </property>  
12     </bean>
13 
14 </beans>

这样就没啥问题,不过建议spring的配置文件定义为applicationContext.xml或spring.xml。

 

我将web.xml的<beans ...> </beans>去掉后报你上面的错误。

_crazysnail_ | 园豆:204 (菜鸟二级) | 2014-09-02 23:10

确实是有道理,<beans>未定义尝试着按照您说的,来修改了下;不过还是有些问题,其他的我也没动,不知道您那里调试着没有问题是因为什么,现在报这样的错误【

Line 1 in XML document from class path resource [applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 7; 不允许有匹配 "[xX][mM][lL]" 的处理指令目标。
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 7; 不允许有匹配 "[xX][mM][lL]" 的处理指令目标。】

查了一下,很多人说的是第一行的前边不要有空字符,不过这样做了还是不行;可以的话帮忙也看看好吧,谢谢你的回答哈~~~

支持(0) 反对(0) KarayLee | 园豆:182 (初学一级) | 2014-09-03 13:45

将首行版本号与编码类别去掉后,可以正确输出结果了;不知道为什么会这样?

你的xml文件必须要放在src根目录下么?我额外建了文件夹config发现就不能正常访问,不知道是不是路径的问题,只有放在根目录下才能正常访问

支持(0) 反对(0) KarayLee | 园豆:182 (初学一级) | 2014-09-03 13:48

@KarayLee: 这个应该跟你xml的编码格式有关,用noteapp++ 看看xml是不是UTF-8, 如果新建了config文件夹,可能路径要改为: /config/web.xml, 前面的/不能去掉

支持(0) 反对(0) wgz | 园豆:1254 (小虾三级) | 2014-09-09 23:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册