刚学Web Service ,用的是apache-cxf-2.2.7。但是第一个简单的发布Service都没成功,暂时不集成spring,生成不了wsdl.xml 。web.xml<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>CXFServlet</servlet-name>
<display-name>CXF Servlet</display-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>/*</url-pattern>
</servlet-mapping>
</web-app>package com.pal.service.api;import javax.jws.WebService;@WebService
public interface SayHello {
public String hello();
}package com.pal.service.impl;
import javax.jws.WebService;
import com.pal.service.api.SayHello;
@WebService(endpointInterface="com.pal.service.api.SayHello",serviceName="SayHello")
public class SayHelloImpl implements SayHello {
public String hello() {
return "hello , Web Service !";
}
}
package com.pal.service.app;import javax.xml.ws.Endpoint;
import com.pal.service.impl.SayHelloImpl;public class WebApp {
public static void main(String[] args) {
System.out.println("Starting Server");
SayHelloImpl implementor = new SayHelloImpl();
String address = "http://localhost:8080/helloWorld";
Endpoint.publish(address, implementor);
}
}访问http://localhost:8080/helloWorld。Tomcate 报告404 !
这是最简单的发布服务的配置了,那里有问题呢???
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>CXFServlet</servlet-name>
<display-name>CXF Servlet</display-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>/*</url-pattern>
</servlet-mapping>
</web-app>package com.pal.service.api;import javax.jws.WebService;@WebService
public interface SayHello {
public String hello();
}package com.pal.service.impl;
import javax.jws.WebService;
import com.pal.service.api.SayHello;
@WebService(endpointInterface="com.pal.service.api.SayHello",serviceName="SayHello")
public class SayHelloImpl implements SayHello {
public String hello() {
return "hello , Web Service !";
}
}
package com.pal.service.app;import javax.xml.ws.Endpoint;
import com.pal.service.impl.SayHelloImpl;public class WebApp {
public static void main(String[] args) {
System.out.println("Starting Server");
SayHelloImpl implementor = new SayHelloImpl();
String address = "http://localhost:8080/helloWorld";
Endpoint.publish(address, implementor);
}
}访问http://localhost:8080/helloWorld。Tomcate 报告404 !
这是最简单的发布服务的配置了,那里有问题呢???
解决方案 »
- 对于,JavaEE初学者,数据库建议学习哪种?
- 求助各位大神,关于ORACLE JDBC驱动的PreparedStatement setString方法处理char字段的问题
- hibernate保存外键问题
- 下面这个人好找工作么?值几个钱,分地区.
- hibernate关联的问题?
- 请教 hibernate查询缓存问题~
- 【高端】200分等高人指点迷津solor报错
- 跪求weblogic8方面的中文教程(电子版)
- jboss的各位大哥救命!
- JB中编译JSP遇到的错误
- struts2二级联动下拉框
- java怎么测试一个邮箱地址是否存在且能连通,还有apache commons email发送邮件怎么确定邮件确实投递到了对方邮箱,或者说的确发送成功了
http://cxf.apache.org/docs/servlet-transport.html
下面是运行main方法,后台打印的信息:
Starting Server
2010-3-28 21:58:51 org.springframework.context.support.AbstractApplicationContext prepareRefresh
信息: Refreshing org.apache.cxf.bus.spring.BusApplicationContext@10f6d3: display name [org.apache.cxf.bus.spring.BusApplicationContext@10f6d3]; startup date [Sun Mar 28 21:58:51 CST 2010]; root of context hierarchy
2010-3-28 21:58:52 org.springframework.beans.factory.support.DefaultListableBeanFactory registerBeanDefinition
信息: Overriding bean definition for bean 'org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder': replacing [Generic bean: class [org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in URL [jar:file:/H:/Java%20EE%20Project/CXFTest/WebRoot/WEB-INF/lib/cxf-2.2.7.jar!/META-INF/cxf/cxf-extension-http.fixml]] with [Generic bean: class [org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in URL [jar:file:/H:/Java%20EE%20Project/CXFTest/WebRoot/WEB-INF/lib/cxf-2.2.7.jar!/META-INF/cxf/cxf-extension-http.fixml]]
2010-3-28 21:58:52 org.springframework.beans.factory.support.DefaultListableBeanFactory registerBeanDefinition
信息: Overriding bean definition for bean 'org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder': replacing [Generic bean: class [org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in URL [jar:file:/H:/Java%20EE%20Project/CXFTest/WebRoot/WEB-INF/lib/cxf-2.2.7.jar!/META-INF/cxf/cxf-extension-http.fixml]] with [Generic bean: class [org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in URL [jar:file:/H:/Java%20EE%20Project/CXFTest/WebRoot/WEB-INF/lib/cxf-2.2.7.jar!/META-INF/cxf/cxf-extension-http.fixml]]
2010-3-28 21:58:52 org.springframework.beans.factory.support.DefaultListableBeanFactory registerBeanDefinition
信息: Overriding bean definition for bean 'org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider': replacing [Generic bean: class [org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in URL [jar:file:/H:/Java%20EE%20Project/CXFTest/WebRoot/WEB-INF/lib/cxf-2.2.7.jar!/META-INF/cxf/cxf-extension-http.fixml]] with [Generic bean: class [org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in URL [jar:file:/H:/Java%20EE%20Project/CXFTest/WebRoot/WEB-INF/lib/cxf-2.2.7.jar!/META-INF/cxf/cxf-extension-http.fixml]]
2010-3-28 21:58:52 org.springframework.beans.factory.support.DefaultListableBeanFactory registerBeanDefinition
信息: Overriding bean definition for bean 'org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory': replacing [Generic bean: class [org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory]; scope=singleton; abstract=false; lazyInit=true; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in URL [jar:file:/H:/Java%20EE%20Project/CXFTest/WebRoot/WEB-INF/lib/cxf-2.2.7.jar!/META-INF/cxf/cxf-extension-http.fixml]] with [Generic bean: class [org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory]; scope=singleton; abstract=false; lazyInit=true; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in URL [jar:file:/H:/Java%20EE%20Project/CXFTest/WebRoot/WEB-INF/lib/cxf-2.2.7.jar!/META-INF/cxf/cxf-extension-http.fixml]]
2010-3-28 21:58:52 org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
信息: Bean factory for application context [org.apache.cxf.bus.spring.BusApplicationContext@10f6d3]: org.springframework.beans.factory.support.DefaultListableBeanFactory@16c79d7
2010-3-28 21:58:52 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
信息: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@16c79d7: defining beans [cxf,org.apache.cxf.bus.spring.BusApplicationListener,org.apache.cxf.bus.spring.BusWiringBeanFactoryPostProcessor,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,org.apache.cxf.resource.ResourceManager,org.apache.cxf.configuration.Configurer,org.apache.cxf.binding.BindingFactoryManager,org.apache.cxf.transport.DestinationFactoryManager,org.apache.cxf.transport.ConduitInitiatorManager,org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,org.apache.cxf.workqueue.WorkQueueManager,org.apache.cxf.buslifecycle.BusLifeCycleManager,org.apache.cxf.endpoint.ServerRegistry,org.apache.cxf.endpoint.ServerLifeCycleManager,org.apache.cxf.endpoint.ClientLifeCycleManager,org.apache.cxf.transports.http.QueryHandlerRegistry,org.apache.cxf.endpoint.EndpointResolverRegistry,org.apache.cxf.headers.HeaderManager,org.apache.cxf.catalog.OASISCatalogManager,org.apache.cxf.endpoint.ServiceContractResolverRegistry,org.apache.cxf.binding.corba.CorbaBindingFactory,org.apache.cxf.binding.corba.wsdl.WSDLExtensionRegister#0,org.apache.cxf.jaxws.context.WebServiceContextResourceResolver,org.apache.cxf.jaxws.context.WebServiceContextImpl,org.apache.cxf.binding.soap.SoapBindingFactory,org.apache.cxf.binding.soap.SoapTransportFactory,org.apache.cxf.binding.soap.customEditorConfigurer,org.apache.cxf.binding.xml.XMLBindingFactory,org.apache.cxf.ws.addressing.policy.AddressingAssertionBuilder,org.apache.cxf.ws.addressing.policy.AddressingPolicyInterceptorProvider,org.apache.cxf.ws.addressing.policy.UsingAddressingAssertionBuilder,org.apache.cxf.javascript.JavascriptQueryHandlerRegistry,org.apache.cxf.transport.local.LocalTransportFactory,org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder,org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder,org.apache.cxf.transport.http.policy.NoOpPolicyInterceptorProvider,org.apache.cxf.transport.http.ClientOnlyHTTPTransportFactory,org.apache.cxf.management.InstrumentationManager,org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory,org.apache.cxf.transport.jms.JMSTransportFactory,org.apache.cxf.binding.object.ObjectBindingFactory,org.apache.cxf.binding.http.HttpBindingFactory,org.apache.cxf.jaxrs.JAXRSBindingFactory,org.apache.cxf.ws.security.policy.WSSecurityPolicyLoader,org.apache.cxf.ws.policy.AssertionBuilderRegistry,org.apache.cxf.ws.policy.PolicyInterceptorProviderRegistry,org.apache.cxf.ws.policy.attachment.external.DomainExpressionBuilderRegistry,org.apache.cxf.ws.policy.attachment.external.EndpointReferenceDomainExpressionBuilder,org.apache.cxf.ws.policy.PolicyBuilder,org.apache.cxf.ws.policy.PolicyEngine,org.apache.cxf.ws.policy.attachment.wsdl11.Wsdl11AttachmentPolicyProvider,org.apache.cxf.ws.policy.attachment.ServiceModelPolicyProvider,org.apache.cxf.ws.policy.mtom.MTOMAssertionBuilder,org.apache.cxf.ws.policy.mtom.MTOMPolicyInterceptorProvider,org.apache.cxf.ws.rm.RMManager,org.apache.cxf.ws.rm.policy.RMPolicyInterceptorProvider,org.apache.cxf.ws.rm.RMAssertionBuilder]; root of factory hierarchy
2010-3-28 21:58:53 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass
信息: Creating Service {http://impl.service.pal.com/}SayHello from class com.pal.service.api.SayHello
2010-3-28 21:58:53 org.apache.cxf.endpoint.ServerImpl initDestination
信息: Setting the server's publish address to be http://localhost:8080/helloWorld
2010-3-28 21:58:53 org.mortbay.log.Slf4jLog info
信息: Logging to org.slf4j.impl.JDK14LoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
2010-3-28 21:58:53 org.mortbay.log.Slf4jLog info
信息: jetty-6.1.21
2010-3-28 21:58:53 org.mortbay.log.Slf4jLog info
信息: Started SelectChannelConnector@localhost:8080
我的MyEclipse中还没配置jetty服务器呢,看来还是用spring来配置,我试试看...
哎,你还是没看懂我在说什么!如果你用你最后那个 main 运行的话,CXF 会使用其内置的 jetty 服务器。