开发者社区> 问答> 正文

spring+cxf整合,服务器端访问wsdl文件报错?报错

<!--这个是用maven集成的 这个是依赖的jar-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.liyi.lianxi</groupId>
  <artifactId>hellocxf</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>hellocxf Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <properties>
        <pro.outerDirectory>src/main/webapp</pro.outerDirectory> 
    </properties>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
    <!-- cxf -->
    <dependency>
        	<groupId>commons-pool</groupId>
        	<artifactId>commons-pool</artifactId>
        	<version>20030825.183949</version>
        </dependency>
        
        <dependency>
		   <groupId>org.apache.cxf</groupId>
		   <artifactId>cxf-api</artifactId>
		   <version>2.5.0</version>
	  </dependency>
	  <dependency>
		   <groupId>org.apache.cxf</groupId>
		   <artifactId>cxf-rt-frontend-jaxws</artifactId>
		   <version>2.5.0</version>
	  </dependency>
	  <dependency>
		   <groupId>org.apache.cxf</groupId>
		   <artifactId>cxf-rt-bindings-soap</artifactId>
		   <version>2.5.0</version>
	  </dependency>
	  <dependency>
		   <groupId>org.apache.cxf</groupId>
		   <artifactId>cxf-rt-transports-http</artifactId>
		   <version>2.5.0</version>
	  </dependency>
	  <dependency>
		   <groupId>org.apache.cxf</groupId>
		   <artifactId>cxf-rt-ws-security</artifactId>
		   <version>2.5.0</version>
	  </dependency>
    
  </dependencies>
  
  <build>
   <plugins>    
            <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <configuration>
                  <source>1.6</source>
                  <target>1.6</target>
                  <encoding>UTF-8</encoding>
                  <compilerArguments>
                   <extdirs>src\main\webapp\WEB-INF\lib</extdirs>
                 </compilerArguments>
              </configuration>
            </plugin>

    </plugins>
    <finalName>hellocxf</finalName>
  </build>
</project>

//这个是web.xml
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <context-param>  
        <param-name>contextConfigLocation</param-name>  
        <param-value>classpath*:applicationContext.xml</param-value>  
    </context-param>  
    <listener>  
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    </listener>  
      <servlet> 
        <servlet-name>CXFServlet</servlet-name> 
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> 
        <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
        <servlet-name>CXFServlet</servlet-name>  
        <url-pattern>/webservice/*</url-pattern> 
    </servlet-mapping>
</web-app>

//这个是spring的核心文件
<?xml version="1.0" encoding="UTF-8"?>
<beans  xmlns="http://www.springframework.org/schema/beans"  
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
        xmlns:p="http://www.springframework.org/schema/p"  
        xmlns:jaxws="http://cxf.apache.org/jaxws"  
            xmlns:cxf="http://cxf.apache.org/core"  
        xsi:schemaLocation="http://www.springframework.org/schema/beans   
            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd   
            http://cxf.apache.org/jaxws   
            http://cxf.apache.org/schemas/jaxws.xsd">  
       
        <import resource="classpath:META-INF/cxf/cxf.xml" />
        <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />  
        <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />  

<!--         <bean id="helloCxfImpl" class="com.liyi.service.impl.HelloCxfImpl"/> -->
        <bean id="helloCxfImpl" class="com.liyi.service.impl.HelloCxfImpl"/> 
        <jaxws:endpoint id="helloCxf" implementor="#helloCxfImpl" address="/HelloCxf" /> 

</beans>   

//这个是接口
package com.liyi.service;

import javax.jws.WebService;

@WebService
public interface HelloCxf {
    public String sayHello(String name);
}

//这个是实现类
package com.liyi.service.impl;

import javax.jws.WebService;

import com.liyi.service.HelloCxf;
@WebService(endpointInterface="com.liyi.service.HelloCxf")
public class HelloCxfImpl implements HelloCxf{

    public String sayHello(String name) {
        // TODO Auto-generated method stub
        return "sayHello to "+ name;
    }

}

启动项目没有报错,而且访问http://localhost:8080/hellocxf可以跳到index.jsp.
但是访问http://localhost:8080/hellocxf/webservice/HelloCxf?wsdl就报错
报错如下:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'cxf' is defined
	org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:529)
	org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1094)
	org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:276)
	org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:196)
	org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1079)
	org.apache.cxf.transport.servlet.CXFServlet.loadBus(CXFServlet.java:60)
	org.apache.cxf.transport.servlet.CXFNonSpringServlet.init(CXFNonSpringServlet.java:64)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
	org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
	org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	java.lang.Thread.run(Thread.java:662)

求指教!



展开
收起
爱吃鱼的程序员 2020-06-14 15:26:55 545 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    没有把cxf组件,注入到springon容器啊没有注入到spring容器啊什么意思?怎么注入到spring容器里面?那个import不是吗?

    1. <spanstyle="color:black;">    <spanstyle="color:<atarget='_blank'>#006699;font-weight:bold;"><<spanstyle="color:#006699;font-weight:bold;">import <spanstyle="color:red;">resource=<spanstyle="color:blue;">"classpath:META-INF/cxf/cxf.xml" <spanstyle="color:#006699;font-weight:bold;">/>  
    2. <spanstyle="color:black;"><spanstyle="color:<atarget='_blank'>#006699;font-weight:bold;"><<spanstyle="color:#006699;font-weight:bold;">import <spanstyle="color:red;">resource=<spanstyle="color:blue;">"classpath:META-INF/cxf/cxf-extension-soap.xml" <spanstyle="color:#006699;font-weight:bold;">/>  
    3. <spanstyle="color:black;"><spanstyle="color:<atarget='_blank'>#006699;font-weight:bold;"><<spanstyle="color:#006699;font-weight:bold;">import <spanstyle="color:red;">resource=<spanstyle="color:blue;">"classpath:META-INF/cxf/cxf-servlet.xml" <spanstyle="color:#006699;font-weight:bold;">/>  
    4. <spanstyle="color:black;">      <spanstyle="color:#008200;"><!-- hello -->  
    5. <spanstyle="color:black;"><spanstyle="color:<atarget='_blank'>#006699;font-weight:bold;"><<spanstyle="color:#006699;font-weight:bold;">bean <spanstyle="color:red;">id=<spanstyle="color:blue;">"aegisBean"    
    6. <spanstyle="color:black;">       <spanstyle="color:red;">class=<spanstyle="color:blue;">"org.apache.cxf.aegis.databinding.AegisDatabinding" <spanstyle="color:#006699;font-weight:bold;">/>   
    7. <spanstyle="color:black;">           
    8. <spanstyle="color:black;">   <spanstyle="color:<atarget='_blank'>#006699;font-weight:bold;"><<spanstyle="color:#006699;font-weight:bold;">bean <spanstyle="color:red;">id=<spanstyle="color:blue;">"jaxws-and-aegis-service-factory"    
    9. <spanstyle="color:black;">       <spanstyle="color:red;">class=<spanstyle="color:blue;">"org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean"<spanstyle="color:#006699;font-weight:bold;">>     
    10. <spanstyle="color:black;">       <spanstyle="color:<atarget='_blank'>#006699;font-weight:bold;"><<spanstyle="color:#006699;font-weight:bold;">property <spanstyle="color:red;">name=<spanstyle="color:blue;">"dataBinding" <spanstyle="color:red;">ref=<spanstyle="color:blue;">"aegisBean" <spanstyle="color:#006699;font-weight:bold;">/>     
    11. <spanstyle="color:black;">   <spanstyle="color:<atarget='_blank'>#006699;font-weight:bold;"></<spanstyle="color:#006699;font-weight:bold;">bean<spanstyle="color:#006699;font-weight:bold;">>    
    12. <spanstyle="color:black;">  
    13. <spanstyle="color:black;">  <spanstyle="color:#008200;"><!-- hello -->  
    14. <spanstyle="color:black;"> <spanstyle="color:<atarget='_blank'>#006699;font-weight:bold;"><<spanstyle="color:#006699;font-weight:bold;">jaxws:server <spanstyle="color:red;">id=<spanstyle="color:blue;">"hello" <spanstyle="color:red;">serviceClass=<spanstyle="color:blue;">"com.framework.webservice.Hello" <spanstyle="color:red;">address=<spanstyle="color:blue;">"/Hello"<spanstyle="color:#006699;font-weight:bold;">>  
    15. <spanstyle="color:black;">        <spanstyle="color:<atarget='_blank'>#006699;font-weight:bold;"><<spanstyle="color:#006699;font-weight:bold;">jaxws:serviceBean<spanstyle="color:#006699;font-weight:bold;">>  
    16. <spanstyle="color:black;">            <spanstyle="color:<atarget='_blank'>#006699;font-weight:bold;"><<spanstyle="color:#006699;font-weight:bold;">bean <spanstyle="color:red;">class=<spanstyle="color:blue;">"com.framework.webservice.HelloImpl"<spanstyle="color:#006699;font-weight:bold;">>  
    17. <spanstyle="color:black;">            <spanstyle="color:<atarget='_blank'>#006699;font-weight:bold;"></<spanstyle="color:#006699;font-weight:bold;">bean<spanstyle="color:#006699;font-weight:bold;">>  
    18. <spanstyle="color:black;">        <spanstyle="color:<atarget='_blank'>#006699;font-weight:bold;"></<spanstyle="color:#006699;font-weight:bold;">jaxws:serviceBean<spanstyle="color:#006699;font-weight:bold;">>  
    19. <spanstyle="color:black;"> <spanstyle="color:<atarget='_blank'>#006699;font-weight:bold;"></<spanstyle="color:#006699;font-weight:bold;">jaxws:server<spanstyle="color:#006699;font-weight:bold;">>  
    因为jar包的原因,不支持,所以就报错了,现已解决。谢谢你参考下<imgsrc="http://www.oschina.net/js/ke/plugins/emoticons/images/0.gif"alt="">没有把你所开发的提供Web服务的程序配置到Spring中。因为jar包的原因,不支持,所以就报错了,现已解决

    2020-06-14 15:27:13
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载