一、使用axis用wsdl生成Webservice:

工具:有axis插件的eclipse,wsdl文件;

操作步骤:

新建工程--》选择wsdl文件--》右键选择Webservice--->Generate Java Bean Skeleton

为了自动生成server-config.wsdd文件 需要勾选上图所示地方;

<ns1:deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" xmlns:ns1="http://xml.apache.org/axis/wsdd/">
<ns1:globalConfiguration>
<ns1:parameter name="sendMultiRefs" value="true"/>
<ns1:parameter name="disablePrettyXML" value="true"/>
<ns1:parameter name="adminPassword" value="admin"/>
<ns1:parameter name="attachments.Directory" value="F:\workspace_study\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\htmltest\WEB-INF\attachments"/>
<ns1:parameter name="dotNetSoapEncFix" value="true"/>
<ns1:parameter name="enableNamespacePrefixOptimization" value="false"/>
<ns1:parameter name="sendXMLDeclaration" value="true"/>
<ns1:parameter name="sendXsiTypes" value="true"/>
<ns1:parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
<ns1:requestFlow>
<ns1:handler type="java:org.apache.axis.handlers.JWSHandler">
<ns1:parameter name="scope" value="session"/>
</ns1:handler>
<ns1:handler type="java:org.apache.axis.handlers.JWSHandler">
<ns1:parameter name="scope" value="request"/>
<ns1:parameter name="extension" value=".jwr"/>
</ns1:handler>
</ns1:requestFlow>
</ns1:globalConfiguration>
<ns1:handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
<ns1:handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
<ns1:handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
<ns1:service name="AdminService" provider="java:MSG">
<ns1:parameter name="allowedMethods" value="AdminService"/>
<ns1:parameter name="enableRemoteAdmin" value="false"/>
<ns1:parameter name="className" value="org.apache.axis.utils.Admin"/>
<ns1:namespace>http://xml.apache.org/axis/wsdd/</ns1:namespace>
</ns1:service>
<ns1:service name="Version" provider="java:RPC">
<ns1:parameter name="allowedMethods" value="getVersion"/>
<ns1:parameter name="className" value="org.apache.axis.Version"/>
</ns1:service>
<ns1:service name="ImportMaterialServiceHttpPort" provider="java:RPC" style="document" use="literal">
<ns1:parameter name="allowedMethods" value="*"/>
<ns1:parameter name="typeMappingVersion" value="1.2"/>
<ns1:parameter name="wsdlPortType" value="ImportMaterial"/>
<ns1:parameter name="className" value="com.dayang.ADP.service.ImportMaterialService._0_1.ImportMaterialHttpBindingSkeleton"/>
<ns1:parameter name="wsdlServicePort" value="ImportMaterialServiceHttpPort"/>
<ns1:parameter name="schemaQualified" value="http://dayang.com/ADP/schema/ADFileInfoEntity/1.0,http://dayang.com/ADP/schema/ADBroadcastListEntity/1.0,http://dayang.com/ADP/schema/ADPServiceParameterType/0.1,http://dayang.com/ADP/schema/ADMaterialEntity/1.0"/>
<ns1:parameter name="wsdlTargetNamespace" value="http://dayang.com/ADP/service/ImportMaterialService/0.1"/>
<ns1:parameter name="wsdlServiceElement" value="ImportMaterialService"/>
<ns2:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns1:CommonRequestType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:com.dayang.ADP.schema.ADPServiceParameterType._0_1.CommonRequestType" xmlns:ns1="http://dayang.com/ADP/schema/ADPServiceParameterType/0.1" xmlns:ns2="http://xml.apache.org/axis/wsdd/"/>
<ns1:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns2:ImportMaterialRequestType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:com.dayang.ADP.schema.ADPServiceParameterType._0_1.ImportMaterialRequestType" xmlns:ns2="http://dayang.com/ADP/schema/ADPServiceParameterType/0.1"/>
<ns1:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns3:ADMaterialEntityType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:com.dayang.ADP.schema.ADMaterialEntity._1_0.ADMaterialEntityType" xmlns:ns3="http://dayang.com/ADP/schema/ADMaterialEntity/1.0"/>
<ns1:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns4:MaterialServiceParameterResponseType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:com.dayang.ADP.schema.ADPServiceParameterType._0_1.MaterialServiceParameterResponseType" xmlns:ns4="http://dayang.com/ADP/schema/ADPServiceParameterType/0.1"/>
<ns1:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns5:ExtendAttributeType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:com.dayang.ADP.schema.ADMaterialEntity._1_0.ExtendAttributeType" xmlns:ns5="http://dayang.com/ADP/schema/ADMaterialEntity/1.0"/>
<ns1:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns6:CommonResponseType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:com.dayang.ADP.schema.ADPServiceParameterType._0_1.CommonResponseType" xmlns:ns6="http://dayang.com/ADP/schema/ADPServiceParameterType/0.1"/>
<ns1:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns7:ExtendAttributeType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:com.dayang.ADP.schema.ADPServiceParameterType._0_1.ExtendAttributeType" xmlns:ns7="http://dayang.com/ADP/schema/ADPServiceParameterType/0.1"/>
<ns1:arrayMapping innerType="ns8:ExtendAttributeType" languageSpecificType="java:com.dayang.ADP.schema.ADMaterialEntity._1_0.ExtendAttributeType[]" qname="ns8:ExtendAttributesType" xmlns:ns8="http://dayang.com/ADP/schema/ADMaterialEntity/1.0"/>
<ns1:arrayMapping innerType="ns9:ExtendAttributeType" languageSpecificType="java:com.dayang.ADP.schema.ADPServiceParameterType._0_1.ExtendAttributeType[]" qname="ns9:ExtendAttributesType" xmlns:ns9="http://dayang.com/ADP/schema/ADPServiceParameterType/0.1"/>
</ns1:service>
<ns1:service name="ImportProgramListServiceHttpPort" provider="java:RPC" style="document" use="literal">
<ns1:parameter name="allowedMethods" value="*"/>
<ns1:parameter name="typeMappingVersion" value="1.2"/>
<ns1:parameter name="wsdlPortType" value="ImportProgramList"/>
<ns1:parameter name="className" value="MREML2.schema.ImportProgramListService.ImportProgramListHttpBindingSkeleton"/>
<ns1:parameter name="wsdlServicePort" value="ImportProgramListServiceHttpPort"/>
<ns1:parameter name="schemaQualified" value="http://MREML2/schema/ProgramListParameter,http://MREML2/schema/CommonDataType,http://MREML2/schema/ProgramList"/>
<ns1:parameter name="wsdlTargetNamespace" value="http://MREML2/schema/ImportProgramListService"/>
<ns1:parameter name="wsdlServiceElement" value="ImportProgramListService"/>
<ns2:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns1:ImportProgramListRequestType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:MREML2.schema.ProgramListParameter.ImportProgramListRequestType" xmlns:ns1="http://MREML2/schema/ProgramListParameter" xmlns:ns2="http://xml.apache.org/axis/wsdd/"/>
<ns1:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns2:ColumnInfoType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:MREML2.schema.ProgramList.ColumnInfoType" xmlns:ns2="http://MREML2/schema/ProgramList"/>
<ns1:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns3:BroadcastListEntityType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:MREML2.schema.ProgramList.BroadcastListEntityType" xmlns:ns3="http://MREML2/schema/ProgramList"/>
<ns1:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns4:ExecuteActionType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:MREML2.schema.ProgramList.ExecuteActionType" xmlns:ns4="http://MREML2/schema/ProgramList"/>
<ns1:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns5:BroadcastListItemType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:MREML2.schema.ProgramList.BroadcastListItemType" xmlns:ns5="http://MREML2/schema/ProgramList"/>
<ns1:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns6:ProgramInfoType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:MREML2.schema.ProgramList.ProgramInfoType" xmlns:ns6="http://MREML2/schema/ProgramList"/>
<ns1:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns7:SignalSourceType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:MREML2.schema.ProgramList.SignalSourceType" xmlns:ns7="http://MREML2/schema/ProgramList"/>
<ns1:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns8:CommonRequestType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:MREML2.schema.CommonDataType.CommonRequestType" xmlns:ns8="http://MREML2/schema/CommonDataType"/>
<ns1:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns9:TapeInfoType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:MREML2.schema.ProgramList.TapeInfoType" xmlns:ns9="http://MREML2/schema/ProgramList"/>
<ns1:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns10:ImportProgramListResponseType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:MREML2.schema.ProgramListParameter.ImportProgramListResponseType" xmlns:ns10="http://MREML2/schema/ProgramListParameter"/>
<ns1:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns11:ExtendAttributeType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:MREML2.schema.CommonDataType.ExtendAttributeType" xmlns:ns11="http://MREML2/schema/CommonDataType"/>
<ns1:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns12:ChannelInfoType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:MREML2.schema.ProgramList.ChannelInfoType" xmlns:ns12="http://MREML2/schema/ProgramList"/>
<ns1:typeMapping deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" encodingStyle="" qname="ns13:CommonResponseType" serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:MREML2.schema.CommonDataType.CommonResponseType" xmlns:ns13="http://MREML2/schema/CommonDataType"/>
<ns1:arrayMapping innerType="ns14:ExtendAttributeType" languageSpecificType="java:MREML2.schema.CommonDataType.ExtendAttributeType[]" qname="ns14:ExtendAttributesType" xmlns:ns14="http://MREML2/schema/CommonDataType"/>
</ns1:service> <ns1:transport name="http">
<ns1:requestFlow>
<ns1:handler type="URLMapper"/>
<ns1:handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
</ns1:requestFlow>
<ns1:parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
<ns1:parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
<ns1:parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
<ns1:parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
<ns1:parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
<ns1:parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
</ns1:transport>
<ns1:transport name="local">
<ns1:responseFlow>
<ns1:handler type="LocalResponder"/>
</ns1:responseFlow>
</ns1:transport>
</ns1:deployment>

server-config.wsdd

Web.xml中会相应生成相关代码:

  <servlet>
<display-name>Apache-Axis Servlet</display-name>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet>
<display-name>Axis Admin Servlet</display-name>
<servlet-name>AdminServlet</servlet-name>
<servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AdminServlet</servlet-name>
<url-pattern>/servlet/AdminServlet</url-pattern>
</servlet-mapping>

启动工程,访问http:ip:port/name/services,发布成功;

二、使用cxf集成springmvc发布Webservice:

工具:cxf-2.4.1 eclipse wsdl spingmvc

使用cxf中的wsdl2java命令生成java文件:

wsdl2java用法:

wsdl2java -p com -d src -all  aa.wsdl

-p  指定其wsdl的命名空间,也就是要生成代码的包名:

-d  指定要产生代码所在目录

-client 生成客户端测试web service的代码

-server 生成服务器启动web  service的代码

-impl 生成web service的实现代码

-ant  生成build.xml文件

-all 生成所有开始端点代码:types,service proxy,,service interface, server mainline, client mainline, implementation object, and an Ant build.xml file.

生成的java文件导入到工程中,添加spring依赖,依赖文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd">
<info
organisation=""
module="adagent"
status="integration">
</info>
<configurations>
<conf name="default" visibility="public" description="runtime dependencies and master artifact can be used with this conf" extends="runtime,master"/>
<conf name="master" visibility="public" description="contains only the artifact published by this module itself, with no transitive dependencies"/>
<conf name="compile" visibility="public" description="this is the default scope, used if none is specified. Compile dependencies are available in all classpaths."/>
<conf name="provided" visibility="public" description="this is much like compile, but indicates you expect the JDK or a container to provide it. It is only available on the compilation classpath, and is not transitive."/>
<conf name="runtime" visibility="public" description="this scope indicates that the dependency is not required for compilation, but is for execution. It is in the runtime and test classpaths, but not the compile classpath." extends="compile"/>
<conf name="test" visibility="private" description="this scope indicates that the dependency is not required for normal use of the application, and is only available for the test compilation and execution phases." extends="runtime"/>
<conf name="system" visibility="public" description="this scope is similar to provided except that you have to provide the JAR which contains it explicitly. The artifact is always available and is not looked up in a repository."/>
<conf name="sources" visibility="public" description="this configuration contains the source artifact of this module, if any."/>
<conf name="javadoc" visibility="public" description="this configuration contains the javadoc artifact of this module, if any."/>
<conf name="optional" visibility="public" description="contains all optional dependencies"/>
</configurations>
<dependencies>
<!--spring-->
<dependency org="org.springframework" name="spring-core" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-beans" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-web" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-context" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-context-support" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-aop" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-expression" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-tx" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-jms" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-jdbc" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework" name="spring-webmvc" rev="4.0.4.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.slf4j" name="slf4j-api" rev="1.7.7" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.slf4j" name="jcl-over-slf4j" rev="1.7.7" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.slf4j" name="jul-to-slf4j" rev="1.7.7" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.slf4j" name="log4j-over-slf4j" rev="1.7.7" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="ch.qos.logback" name="logback-classic" rev="1.1.2" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="ch.qos.logback" name="logback-core" rev="1.1.2" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<!--json序列化-->
<dependency org="com.fasterxml.jackson.core" name="jackson-core" rev="2.3.1" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="com.fasterxml.jackson.core" name="jackson-annotations" rev="2.3.1" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="com.fasterxml.jackson.core" name="jackson-databind" rev="2.3.1" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<!--HTTP-->
<dependency org="org.aopalliance" name="com.springsource.org.aopalliance" rev="1.0.0" />
<dependency org="org.springframework.data" name="spring-data-commons" rev="1.10.0.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.apache.httpcomponents" name="httpclient" rev="4.3.3" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.apache.httpcomponents" name="httpcore" rev="4.3.3" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.apache.httpcomponents" name="httpmime" rev="4.3.3" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.apache.ws.xmlschema" name="xmlschema-core" rev="2.1.0" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<!--cxf-->
<dependency org="org.apache.cxf" name="cxf-bundle" rev="2.7.11" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.apache.neethi" name="neethi" rev="3.0.3" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.apache.velocity" name="velocity" rev="1.7" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.apache.ws.xmlschema" name="xmlschema-core" rev="2.1.0" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="javax.xml.bind" name="jaxb-api" rev="2.2.4" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="javax.xml.soap" name="saaj-api" rev="1.3.5" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="com.sun.xml.bind" name="jaxb-xjc" rev="2.2.7" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="com.sun.xml.bind" name="jaxb-core" rev="2.2.7" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="com.sun.xml.messaging.saaj" name="saaj-impl" rev="1.3.23" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.codehaus.woodstox" name="woodstox-core-asl" rev="4.3.0" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.codehaus.woodstox" name="stax2-api" rev="3.1.4" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.jvnet.staxex" name="stax-ex" rev="1.7.7" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.codehaus.jettison" name="jettison" rev="1.3.5" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="wsdl4j" name="wsdl4j" rev="1.6.3" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/> <!-- axis相关内容 -->
<dependency org="axis" name="axis" rev="1.4" conf="compile->compile(*),master(*);runtime->runtime(*)" />
<dependency org="axis" name="axis-jaxrpc" rev="1.4" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false" />
<dependency org="axis" name="axis-saaj" rev="1.4" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false" />
<dependency org="axis" name="axis-wsdl4j" rev="1.5.1" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false" />
<dependency org="commons-discovery" name="commons-discovery" rev="0.2" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false" /> <dependency org="com.google.code.gson" name="gson" rev="2.3" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="dom4j" name="dom4j" rev="1.6.1" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<!--
<dependency org="org.apache.axis" name="axis" rev="1.4" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
-->
<dependency org="jaxen" name="jaxen" rev="1.1-beta-9" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="javax.validation" name="validation-api" rev="1.1.0.Final" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false" />
<dependency org="javax.ws.rs" name="javax.ws.rs-api" rev="2.0-m10" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.springframework.data" name="spring-data-mongodb" rev="1.7.0.RELEASE" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.mongodb" name="mongo-java-driver" rev="3.0.0-rc1" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="org.apache.solr" name="solr-solrj" rev="5.1.0" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/> <dependency org="org.apache.commons" name="commons-vfs2" rev="2.0" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="commons-discovery" name="commons-discovery" rev="0.5" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="commons-logging" name="commons-logging" rev="1.2" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
<dependency org="javax.xml.rpc" name="javax.xml.rpc-api" rev="1.1" conf="compile->compile(*),master(*);runtime->runtime(*)" transitive="false"/>
</dependencies>
</ivy-module>

ivy.xml

Web.xml文件添加代码:

 <servlet>
<servlet-name>CXFService</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFService</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>

spring的beans文件添加如下代码:

 <bean id="WebServiceBean" class="org.tempuri.WebserviceSoapImpl"></bean>

     <jaxws:server id="WebServiceSoap"
serviceClass="org.tempuri.WebServiceSoap" address="/WebService.asmx">
<jaxws:serviceBean>
<ref bean="WebServiceBean"/>
</jaxws:serviceBean>
</jaxws:server>

以上可实现webservice的发布;

三、使用cxf发布restful接口:

添加代码:

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Component; @Path("/test")
@Produces(MediaType.APPLICATION_JSON)
@Component("cxfRestfulRS")
public class CxfRestfulRS { private static final Logger logger = LoggerFactory.getLogger(CxfRestfulRS.class); @Autowired
MongoTemplate mongoTemplate; @GET
@Path(value = "/check")
public String check() {
try {
System.out.println("服务运行正常...");
} catch (Throwable e) {
logger.error(e.getMessage());
logger.debug(e.getMessage(), e);
}
return "服务运行正常...";
} @Path(value = "/add")
@GET
public void add() {
try {
TestMo mo = new TestMo();
mo.setId("1111");
mo.setMessage("2222");
mo.setName("3333");
mongoTemplate.insert(mo); } catch (Throwable e) {
logger.error(e.getMessage());
logger.debug(e.getMessage(), e);
}
}
}

CxfRestfulRS.java

添加beans配置:

 <jaxrs:server id="webService" address="/">
<!--输入拦截器设置-->
<jaxrs:inInterceptors> </jaxrs:inInterceptors> <!--输出拦截器设置-->
<jaxrs:outInterceptors> </jaxrs:outInterceptors> <!--serviceBeans:暴露的WebService服务类-->
<jaxrs:serviceBeans>
<ref bean="cxfRestfulRS"/>
</jaxrs:serviceBeans> <!--支持的协议-->
<jaxrs:extensionMappings>
<entry key="json" value="application/json"/>
<entry key="xml" value="application/xml"/>
</jaxrs:extensionMappings>
</jaxrs:server>

beans.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"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xmlns:jaxrs="http://cxf.apache.org/jaxrs"
xmlns:mongo="http://www.springframework.org/schema/data/mongo"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/data/mongo http://www.springframework.org/schema/data/mongo/spring-mongo-1.5.xsd
http://www.springframework.org/schema/data/repository http://www.springframework.org/schema/data/repository/spring-repository-1.5.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"> <!-- 自动扫描 -->
<context:annotation-config /> <mvc:annotation-driven /> <context:component-scan base-package="com.ad" /> <context:property-placeholder location="classpath:com/ad/mongodb.properties" />
<!--
<mongo:mongo id="mongo" host="${mongodb.host}" port="${mongodb.port}" />
-->
<mongo:mongo id="mongo" replica-set="${mongodb.replicaSet}" /> <mongo:db-factory id="mongoDbFactory" dbname="${mongodb.database}"
mongo-ref="mongo" /> <!-- mongo模板操作对象 -->
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
</bean> <bean id="WebServiceBean" class="org.tempuri.WebserviceSoapImpl"></bean> <jaxws:server id="WebServiceSoap"
serviceClass="org.tempuri.WebServiceSoap" address="/WebService.asmx">
<jaxws:serviceBean>
<ref bean="WebServiceBean"/>
</jaxws:serviceBean>
</jaxws:server> <jaxrs:server id="webService" address="/">
<!--输入拦截器设置-->
<jaxrs:inInterceptors> </jaxrs:inInterceptors> <!--输出拦截器设置-->
<jaxrs:outInterceptors> </jaxrs:outInterceptors> <!--serviceBeans:暴露的WebService服务类-->
<jaxrs:serviceBeans>
<ref bean="cxfRestfulRS"/>
</jaxrs:serviceBeans> <!--支持的协议-->
<jaxrs:extensionMappings>
<entry key="json" value="application/json"/>
<entry key="xml" value="application/xml"/>
</jaxrs:extensionMappings>
</jaxrs:server>
</beans>

Web.xml完整文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>ADAgent</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-beans.xml</param-value>
</context-param>
<context-param>
<param-name>logConfigFile</param-name>
<param-value>config/logback.xml</param-value>
</context-param>
<context-param>
<param-name>propertiesFiles</param-name>
<param-value>config/adagent.properties</param-value>
</context-param>
<listener>
<listener-class>com.ad.main.SpringWebMain</listener-class>
</listener>
<!--
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:com/ad/beans.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
--> <servlet>
<servlet-name>CXFService</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFService</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping> <servlet>
<display-name>Apache-Axis Servlet</display-name>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<servlet>
<display-name>Axis Admin Servlet</display-name>
<servlet-name>AdminServlet</servlet-name>
<servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class>
<load-on-startup>100</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AdminServlet</servlet-name>
<url-pattern>/servlet/AdminServlet</url-pattern>
</servlet-mapping>
</web-app>
package com.ad.main;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Properties; import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.util.StringUtils;
import org.springframework.web.context.ContextLoaderListener; import com.LoggerConfigurator; public class SpringWebMain extends ContextLoaderListener { protected static final String INIT_PARAM_HOMEDIR = "homeDirectory"; protected static final String INIT_PARAM_LOGCONFIGFILE = "logConfigFile"; protected static final String INIT_PARAM_PROPERTIESFILES = "propertiesFiles"; protected static final String SYS_PPT_APPHOME = "app.home"; protected static final Logger logger = LoggerFactory
.getLogger(SpringWebMain.class); public static <T> T getBean(Class<T> requiredType) {
ApplicationContext ac = ContextLoaderListener
.getCurrentWebApplicationContext();
if (ac != null) {
return ac.getBean(requiredType);
} else {
throw new org.springframework.context.ApplicationContextException(
"ApplicationContext has not been set.");
}
} public static <T> T getBean(String name, Class<T> requiredType) {
ApplicationContext ac = ContextLoaderListener
.getCurrentWebApplicationContext();
if (ac != null) {
return ac.getBean(name, requiredType);
} else {
throw new org.springframework.context.ApplicationContextException(
"ApplicationContext has not been set.");
}
} @Override
public void contextDestroyed(ServletContextEvent event) {
org.slf4j.bridge.SLF4JBridgeHandler.uninstall();
super.contextDestroyed(event);
} @Override
public void contextInitialized(ServletContextEvent event) {
ServletContext sc = event.getServletContext();
initialize(sc);
super.contextInitialized(event);
} protected String getLogbackConfigFileName() {
return null;
} protected String[] getPropertiesFileNames() {
return new String[] {};
} private String getLogbackConfigFileName(ServletContext servletContext) {
String cfn = servletContext.getInitParameter(INIT_PARAM_LOGCONFIGFILE);
if (StringUtils.hasLength(cfn)) {
return cfn;
} else {
return this.getLogbackConfigFileName();
}
} private String[] getPropertiesFileNames(ServletContext servletContext) {
String ppfs = servletContext
.getInitParameter(INIT_PARAM_PROPERTIESFILES);
if (StringUtils.hasLength(ppfs)) {
return ppfs.split(";");
} else {
return this.getPropertiesFileNames();
}
} protected void initialize(ServletContext servletContext) {
String appname = servletContext.getServletContextName();
String homedir_ppt_name = appname + ".home";
String homedir = servletContext.getInitParameter(INIT_PARAM_HOMEDIR);
if (!StringUtils.hasText(homedir)) {
homedir = System.getProperty(homedir_ppt_name);
}
if (!StringUtils.hasText(homedir)) {
homedir = System.getenv(appname + "_home");
}
if (!StringUtils.hasText(homedir)) {
homedir = ".";
logger.warn("未找到" + homedir_ppt_name + ",请正确配置,否则系统将无法正常运行!");
logger.warn("暂时将" + homedir_ppt_name + "的值设置为当前目录!");
}
// 强制加入System,以便logback等其他配置使用
System.setProperty(homedir_ppt_name, homedir);
System.setProperty(SYS_PPT_APPHOME, homedir); // 日志处理
System.setProperty("org.apache.cxf.Logger",
"org.apache.cxf.common.logging.Slf4jLogger");
if (!org.slf4j.bridge.SLF4JBridgeHandler.isInstalled()) {
org.slf4j.bridge.SLF4JBridgeHandler.install();
}
File logcf = new File(homedir, getLogbackConfigFileName(servletContext));
logger.info("加载日志配置文件:{}", logcf.getAbsolutePath());
LoggerConfigurator.config(logcf.getAbsolutePath()); // 加载配置文件
for (String str : getPropertiesFileNames(servletContext)) {
if (StringUtils.hasLength(str)) {
loadProperties(homedir + "/" + str);
}
}
} private void loadProperties(String filename) {
File file = new File(filename);
if (!file.exists()) {
logger.warn("未找到文件:" + filename + ",请正确配置,否则系统将无法正常运行!");
return;
}
logger.info("加载配置文件:{}", file.getAbsolutePath());
Properties ppts = new Properties();
try {
ppts.load(new FileReader(file));
} catch (FileNotFoundException e) {
logger.error("未找到文件:" + filename + ",请正确配置,否则系统将无法正常运行!");
} catch (IOException e) {
logger.error("加载文件:" + filename + ",请正确配置,否则系统将无法正常运行!");
}
// 插入到System.Properties
for (Enumeration<?> e = ppts.propertyNames(); e.hasMoreElements();) {
String key = (String) e.nextElement();
System.setProperty(key, ppts.getProperty(key));
}
}
}

SpringWebMain

package com;

import org.slf4j.LoggerFactory;

import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.joran.JoranConfigurator;
import ch.qos.logback.core.joran.spi.JoranException;
import ch.qos.logback.core.util.StatusPrinter; public class LoggerConfigurator { public static void config(String logbackCfg) {
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
try {
JoranConfigurator configurator = new JoranConfigurator();
configurator.setContext(lc);
// the context was probably already configured by default
// configuration rules
lc.reset();
configurator.doConfigure(logbackCfg);
} catch (JoranException je) {
// StatusPrinter will handle this
}
StatusPrinter.printIfErrorsOccured(lc);
}
}

LoggerConfigurator.java

axis和cxf集成Springmvc的使用的更多相关文章

  1. WebService流行框架之Axis和CXF

    转自:http://www.cnblogs.com/snake-hand/archive/2013/06/09/3129915.html 前言 上节课我们对WebService进行了简单的介绍,对于其 ...

  2. CXF集成Spring实现webservice的发布与请求

    CXF集成Spring实现webservice的发布(服务端) 目录结构: 主要代码: package com.cxf.spring.pojo; public class User { int id ...

  3. Quartz集成springMVC 的方案二(持久化任务、集群和分布式)

    Quartz是一个开放源码项目,专注于任务调度器,提供了极为广泛的特性如持久化任务,集群和分布式任务等. Quartz核心是调度器,还采用多线程管理. 1.持久化任务:当应用程序停止运行时,所有调度信 ...

  4. Quartz集成springMVC 的方案一

    Quartz是一个开放源码项目,专注于任务调度器. springMVC 具体的搭建框架就不具体说明,接下来直接描述把Quartz集成到springMVC 框架中. 步骤: 1.引入所需要的jar包 2 ...

  5. tinyweb集成springmvc 的一种可行方式

    最近tiny项目中集成了springmvc,而且使用的tiny的版本比较低,所以整合起来官网给的前两种方式都行不通. 而且有个tiny整合springmvc的maven依赖都下载不了.所以只有使用第三 ...

  6. 一个CXF集成SPRING的WEBSERVICE完整实例

    1 首先准备以下JAR包 activation.jar commons-logging-1.1.1.jar cxf-2.5.6.jar jaxb-api-2.2.1.jar jaxb-impl-2.1 ...

  7. (第04节)集成SpringMVC框架

    在上一节的基础上集成spring_mvc 首先添加依赖文件 <properties> <javax.servlet.version>4.0.0</javax.servle ...

  8. 集成SpringMVC, Spring, Mybatis环境

    web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app version=" ...

  9. IntelliJ IDEA 使用maven 集成SpringMVC+Hibernate

    准备工作: 安装idea intellij 安装jdk1.8,配好环境变量 安装tomcat 7 准备工作完成之后,就开始创建项目了 创建项目 1.File–>new project–>选 ...

随机推荐

  1. 小爬新浪新闻AFCCL

    1.任务目标: 爬取新浪新闻AFCCL的文章:文章标题.时间.来源.内容.评论数等信息. 2.目标网页: http://sports.sina.com.cn/z/AFCCL/ 3.网页分析 4.源代码 ...

  2. [2017-09-04]Abp系列——为什么值对象必须设计成不可变的

    本系列目录:Abp介绍和经验分享-目录 这篇是之前翻备忘录发现漏了的,前阵子刚好同事又提及过这个问题,这里补上. 本文重点在于理解什么是值对象的不可变性. Abp的ValueObject以及EF的Co ...

  3. Java面试准备之探究集合

    摘要:之前虽然对集合框架一些知识点作了总结,但是想想面试可能会问源码,于是又大致研究了一下集合框架的一些实现类的源码,在此整理一下. 一.集合框架 二.深究实现类 1.ArrayList源码实现 Ar ...

  4. 通过css控制超链接不显示下划线

    “页面属性”——“链接”——“下划线样式”——“始终无下划线” <style type="text/css"> a:link { text-decoration: no ...

  5. 用PyCharm执行测试成功但无法生成HTMLTestRunner报告

    问题:代码写的没问题,执行也成功了,但就是无法生成HTMLTestRunner的报告 其实这是编辑器搞得鬼,编辑器为了方便用户执行测试,都有一项功能,可以用编辑器来调用unittest或者nose来执 ...

  6. 在Ubuntu16.04上部署LXC容器管理系统的相关步骤

    打算安装一个LXC linux容器管理的软件来分配使用资源并配置不同的编程环境,这样就方便大家的使用,步骤如下(宿主机的环境都搭建好了,对应显卡的驱动等): 参考网站: 简单入门和相关指令总结:htt ...

  7. 基于SSM实现的简易员工管理系统(网站上线篇)

    经历无数苦难,好不容易,网站终于上线了.=.=内牛满面ing.chengmingwei.top就是本员工管理系统的主页啦.是的,很简陋,但是毕竟是第一次嘛,所以慢慢来嘛. 如上次所说的(网站简介,见: ...

  8. 第4阶段——制作根文件系统之编译配置安装busybox(3)

    在上一节分析出制作一个最小的根文件系统至少需要: (1)/dev/console(终端控制台, 提供标准输入.标准输出以及标准错误) /dev/null  (为空的话就是/dev/null, 所有写到 ...

  9. LINUX下C语言编程调用函数、链接头文件以及库文件

    LINUX下C语言编程经常需要链接其他函数,而其他函数一般都放在另外.c文件中,或者打包放在一个库文件里面,我需要在main函数中调用这些函数,主要有如下几种方法: 1.当需要调用函数的个数比较少时, ...

  10. outlook 无法搜索邮件的解决方法

    我的outlook版本是2007 SP3,英文版.一直有搜索不到邮件的问题,例如在搜索框输入发件人的名字,或者邮件中的词语,就是搜索不到邮件,即使那封邮件确实存在. 在网上搜索,Microsoft 的 ...