Author: sagara Date: Wed May 2 09:29:03 2012 New Revision: 1332965 URL: http://svn.apache.org/viewvc?rev=1332965&view=rev Log: TRANSPORTS-50 - Added a sample to demonstrate use of HTTPS transport. This sample is based on Jetty Maven plug-in and keytool-maven-plugin.
Added: axis/axis2/java/transports/trunk/modules/samples/ axis/axis2/java/transports/trunk/modules/samples/https-sample/ axis/axis2/java/transports/trunk/modules/samples/https-sample/README.txt (with props) axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/pom.xml (with props) axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/src/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/src/main/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/src/main/java/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/src/main/java/org/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/src/main/java/org/apache/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/src/main/java/org/apache/axis2/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/src/main/java/org/apache/axis2/examples/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/src/main/java/org/apache/axis2/examples/httpsclient/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/src/main/java/org/apache/axis2/examples/httpsclient/SimpleServiceClient.java (with props) axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/pom.xml (with props) axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/java/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/java/org/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/java/org/apache/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/java/org/apache/axis2/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/java/org/apache/axis2/examples/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/java/org/apache/axis2/examples/httpsservice/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/java/org/apache/axis2/examples/httpsservice/SimpleService.java (with props) axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/axis2.xml (with props) axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/services/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/services/SimpleService/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/services/SimpleService/META-INF/ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/services/SimpleService/META-INF/services.xml (with props) axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/web.xml (with props) axis/axis2/java/transports/trunk/modules/samples/https-sample/pom.xml (with props) Modified: axis/axis2/java/transports/trunk/pom.xml Added: axis/axis2/java/transports/trunk/modules/samples/https-sample/README.txt URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/samples/https-sample/README.txt?rev=1332965&view=auto ============================================================================== --- axis/axis2/java/transports/trunk/modules/samples/https-sample/README.txt (added) +++ axis/axis2/java/transports/trunk/modules/samples/https-sample/README.txt Wed May 2 09:29:03 2012 @@ -0,0 +1,52 @@ +Sample: HTTPS Sample +=============== + +Introduction +============ + +This sample demonstrate use of HTTPS transport in both server and client sides. Jetty Maven plug-in used as +the web server and keytool-maven-plugin is used to generate secure key for the sample further same generated +key is used in client side too. This sample does not try to introduce secure key management best practices, +but in real world scenarios it's recommended to follow standard key management practices. + + +Pre-Requisites +============== + +Apache Maven 2.X or 3.X + + + +Running the Sample Service +========================= + +1.) In a command line move to "samples/https-sample/httpsService" directory and run " mvn clean jetty:run" + +2.) You should able to see following message on console. + + "XXXX-XX-XX XX:XX:XX. XXX:INFO::Started SslSocketConnector@0.0.0.0:8443" + +3.) Try to access WSDL file through the following URL, in some browsers you have to force to accepts the server certificate. + + https://localhost:8443/services/SimpleService?wsdl + + +Running the Sample Client +========================= + +1.) In a another command window move to this directory "samples/https-sample/httpsClient". + +2.) Run following command. + + "mvn exec:java -Dexec.mainClass="org.apache.axis2.examples.httpsclient.SimpleServiceClient" -Dexec.classpathScope=runtime" + + +3.) You should able to see the response as follows. + +<ns:helloServiceResponse xmlns:ns="http://httpsservice.examples.axis2.apache.org"><ns:return>Hello World </ns:return></ns:helloServiceResponse> + + + +Help +==== +Please contact java-user list (java-u...@axis.apache.org) if you have any trouble running the sample. Propchange: axis/axis2/java/transports/trunk/modules/samples/https-sample/README.txt ------------------------------------------------------------------------------ svn:eol-style = native Added: axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/pom.xml?rev=1332965&view=auto ============================================================================== --- axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/pom.xml (added) +++ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/pom.xml Wed May 2 09:29:03 2012 @@ -0,0 +1,24 @@ +<!-- ~ 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. --> + +<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/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <artifactId>https-sample</artifactId> + <groupId>org.apache.axis2.examples</groupId> + <version>1.7.0-SNAPSHOT</version> + </parent> + <groupId>org.apache.axis2.examples</groupId> + <artifactId>httpsClient</artifactId> + <version>1.7.0-SNAPSHOT</version> +</project> \ No newline at end of file Propchange: axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/src/main/java/org/apache/axis2/examples/httpsclient/SimpleServiceClient.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/src/main/java/org/apache/axis2/examples/httpsclient/SimpleServiceClient.java?rev=1332965&view=auto ============================================================================== --- axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/src/main/java/org/apache/axis2/examples/httpsclient/SimpleServiceClient.java (added) +++ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/src/main/java/org/apache/axis2/examples/httpsclient/SimpleServiceClient.java Wed May 2 09:29:03 2012 @@ -0,0 +1,61 @@ +/* + * 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. + */ + +package org.apache.axis2.examples.httpsclient; + +import javax.xml.stream.XMLStreamException; + +import org.apache.axiom.om.OMAbstractFactory; +import org.apache.axiom.om.OMElement; +import org.apache.axiom.om.OMFactory; +import org.apache.axiom.om.OMNamespace; +import org.apache.axis2.AxisFault; +import org.apache.axis2.addressing.EndpointReference; +import org.apache.axis2.client.Options; +import org.apache.axis2.client.ServiceClient; + +public class SimpleServiceClient { + + public static void main(String[] ars) throws AxisFault, XMLStreamException { + // Client side keystore location, here we use same keystore + System.setProperty("javax.net.ssl.trustStore", "../httpsService/target/jetty-ssl.keystore"); + System.setProperty("javax.net.ssl.trustStorePassword", "axis2key"); + String epr = "https://localhost:8443/services/SimpleService/"; + + Options options = new Options(); + options.setTo(new EndpointReference(epr)); + ServiceClient sender = new ServiceClient(); + sender.setOptions(options); + OMElement ret = sender.sendReceive(creatMsg()); + ret.serialize(System.out); + + } + + public static OMElement creatMsg() { + OMFactory fac = OMAbstractFactory.getOMFactory(); + OMNamespace omNs = fac.createOMNamespace("http://httpsservice.examples.axis2.apache.org", + "ns1"); + OMElement method = fac.createOMElement("helloService", omNs); + OMElement value = fac.createOMElement("msg", omNs); + value.setText("World "); + method.addChild(value); + return method; + } + +} Propchange: axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsClient/src/main/java/org/apache/axis2/examples/httpsclient/SimpleServiceClient.java ------------------------------------------------------------------------------ svn:eol-style = native Added: axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/pom.xml?rev=1332965&view=auto ============================================================================== --- axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/pom.xml (added) +++ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/pom.xml Wed May 2 09:29:03 2012 @@ -0,0 +1,76 @@ +<!-- ~ 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. --> + +<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/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <artifactId>https-sample</artifactId> + <groupId>org.apache.axis2.examples</groupId> + <version>1.7.0-SNAPSHOT</version> + </parent> + <groupId>org.apache.axis2.examples</groupId> + <artifactId>httpsService</artifactId> + <version>1.7.0-SNAPSHOT</version> + <packaging>war</packaging> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>keytool-maven-plugin</artifactId> + <executions> + <execution> + <phase>generate-resources</phase> + <id>clean</id> + <goals> + <goal>clean</goal> + </goals> + </execution> + <execution> + <phase>generate-resources</phase> + <id>genkey</id> + <goals> + <goal>genkey</goal> + </goals> + </execution> + </executions> + <configuration> + <keystore>${project.build.directory}/jetty-ssl.keystore</keystore> + <dname>cn=localhost</dname> + <keypass>axis2key</keypass> + <storepass>axis2key</storepass> + <alias>axis2key</alias> + <keyalg>RSA</keyalg> + </configuration> + </plugin> + <plugin> + <groupId>org.mortbay.jetty</groupId> + <artifactId>maven-jetty-plugin</artifactId> + <configuration> + <webAppConfig> + <contextPath>/</contextPath> + </webAppConfig> + <connectors> + <connector + implementation="org.mortbay.jetty.security.SslSocketConnector"> + <port>8443</port> + <maxIdleTime>60000</maxIdleTime> + <keystore>${project.build.directory}/jetty-ssl.keystore</keystore> + <password>axis2key</password> + <keyPassword>axis2key</keyPassword> + </connector> + </connectors> + </configuration> + </plugin> + </plugins> + </build> +</project> \ No newline at end of file Propchange: axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/java/org/apache/axis2/examples/httpsservice/SimpleService.java URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/java/org/apache/axis2/examples/httpsservice/SimpleService.java?rev=1332965&view=auto ============================================================================== --- axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/java/org/apache/axis2/examples/httpsservice/SimpleService.java (added) +++ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/java/org/apache/axis2/examples/httpsservice/SimpleService.java Wed May 2 09:29:03 2012 @@ -0,0 +1,28 @@ +/* + * 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. + */ + +package org.apache.axis2.examples.httpsservice; + +public class SimpleService { + + public String helloService(String msg) { + return "Hello " + msg; + } + +} Propchange: axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/java/org/apache/axis2/examples/httpsservice/SimpleService.java ------------------------------------------------------------------------------ svn:eol-style = native Added: axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/axis2.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/axis2.xml?rev=1332965&view=auto ============================================================================== --- axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/axis2.xml (added) +++ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/axis2.xml Wed May 2 09:29:03 2012 @@ -0,0 +1,493 @@ +<!-- + ~ 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. + --> + +<axisconfig name="AxisJava2.0"> + <!-- ================================================= --> + <!-- Parameters --> + <!-- ================================================= --> + <parameter name="hotdeployment">true</parameter> + <parameter name="hotupdate">false</parameter> + <parameter name="enableMTOM">false</parameter> + <parameter name="enableSwA">false</parameter> + + <!--Uncomment if you want to enable file caching for attachments --> + <!--parameter name="cacheAttachments">true</parameter> + <parameter name="attachmentDIR"></parameter> + <parameter name="sizeThreshold">4000</parameter--> + + <parameter name="EnableChildFirstClassLoading">false</parameter> + + <!-- + The exposeServiceMetadata parameter decides whether the metadata (WSDL, schema, policy) of + the services deployed on Axis2 should be visible when ?wsdl, ?wsdl2, ?xsd, ?policy requests + are received. + This parameter can be defined in the axi2.xml file, in which case this will be applicable + globally, or in the services.xml files, in which case, it will be applicable to the + Service groups and/or services, depending on the level at which the parameter is declared. + This value of this parameter defaults to true. + --> + <parameter name="exposeServiceMetadata">true</parameter> + + + <!--Uncomment if you want to plugin your own attachments lifecycle implementation --> + <!--<attachmentsLifecycleManager class="org.apache.axiom.attachments.lifecycle.impl.LifecycleManagerImpl"/>--> + + + <!--Uncomment if you want to enable the reduction of the in-memory cache of WSDL definitions --> + <!--In some server environments, the available memory heap is limited and can fill up under load --> + <!--Since in-memory copies of WSDL definitions can be large, some steps can be taken--> + <!--to reduce the memory needed for the cached WSDL definitions. --> + <!--parameter name="reduceWSDLMemoryCache">true</parameter--> + + <!--This will give out the timout of the configuration contexts, in milliseconds--> + <parameter name="ConfigContextTimeoutInterval">30000</parameter> + + <!--During a fault, stack trace can be sent with the fault message. The following flag will control --> + <!--that behavior.--> + <parameter name="sendStacktraceDetailsWithFaults">false</parameter> + + <!--If there aren't any information available to find out the fault reason, we set the message of the exception--> + <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be --> + <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag--> + <!--is set, then Axis2 tries to get the first exception and set its message as the faultreason/Reason.--> + <parameter name="DrillDownToRootCauseForFaultReason">false</parameter> + + <parameter name="userName">admin</parameter> + <parameter name="password">axis2</parameter> + + <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.--> + <!--ServicesDirectory only works on the following cases--> + <!---File based configurator and in that case the value should be a file URL (http:// not allowed)--> + <!---When creating URL Based configurator with URL file:// --> + <!--- War based configurator with expanded case , --> + + <!--All the other scenarios it will be ignored.--> + <!--<parameter name="ServicesDirectory">service</parameter>--> + <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path--> + <!--<parameter name="ModulesDirectory">modules</parameter>--> + + + <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context--> + <!--root which can configured using the following contextRoot parameter--> + <!--<parameter name="contextRoot">axis2</parameter>--> + + <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distinguiush those endpoints--> + <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this --> + <!--context path to proper Axis2 servlets--> + <!--<parameter name="servicePath">services</parameter>--> + <!--<parameter name="restPath">rest</parameter>--> + + <!-- Following parameter will completely disable REST handling in Axis2--> + <parameter name="disableREST" locked="false">false</parameter> + + <!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files --> + <parameter name="disableSOAP12" locked="true">false</parameter> + + + + <!--CORBA deployer , this will alow users to invoke remote CORBA services through Axis2--> + <!--<deployer extension=".xml" directory="corba" class="org.apache.axis2.corba.deployer.CorbaDeployer"/>--> + + <!--<deployer extension=".jsa" directory="rmiservices" class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>--> + + + <!-- Following parameter will set the host name for the epr--> + <!--<parameter name="hostname" locked="true">myhost.com</parameter>--> + + <!-- If you have a front end host which exposes this webservice using a different public URL --> + <!-- use this parameter to override autodetected url --> + <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>--> + + <!--By default, JAXWS services are created by reading annotations. WSDL and schema are generated--> + <!--using a separate WSDL generator only when ?wsdl is called. Therefore, even if you engage--> + <!--policies etc.. to AxisService, it doesn't appear in the WSDL. By setting the following property--> + <!--to true, you can create the AxisService using the generated WSDL and remove the need for a--> + <!--WSDL generator. When ?wsdl is called, WSDL is generated in the normal way.--> + <parameter name="useGeneratedWSDLinJAXWS">false</parameter> + + <!-- The way of adding listener to the system--> + <!-- <listener class="org.apache.axis2.ObserverIMPL">--> + <!-- <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>--> + <!-- </listener>--> + + <threadContextMigrators> + <threadContextMigrator listId="JAXWS-ThreadContextMigrator-List" + class="org.apache.axis2.jaxws.addressing.migrator.EndpointContextMapMigrator"/> + </threadContextMigrators> + + <!-- ================================================= --> + <!-- Message Receivers --> + <!-- ================================================= --> + <!--This is the default MessageReceiver for the system , if you want to have MessageReceivers for --> + <!--all the other MEP implement it and add the correct entry to here , so that you can refer from--> + <!--any operation --> + <!--Note : You can override this for a particular service by adding the same element with your requirement--> + <messageReceivers> + <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" + class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/> + <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" + class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/> + <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only" + class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/> + <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out" + class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/> + <messageReceiver mep="http://www.w3.org/ns/wsdl/in-only" + class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/> + <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out" + class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/> + </messageReceivers> + + <!-- ================================================= --> + <!-- Message Formatter --> + <!-- ================================================= --> + <!--Following content type to message formatter mapping can be used to implement support for different message --> + <!--format serialization in Axis2. These message formats are expected to be resolved based on the content type. --> + <messageFormatters> + <messageFormatter contentType="application/x-www-form-urlencoded" + class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/> + <messageFormatter contentType="multipart/form-data" + class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/> + <messageFormatter contentType="application/xml" + class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/> + <messageFormatter contentType="text/xml" + class="org.apache.axis2.transport.http.SOAPMessageFormatter"/> + <messageFormatter contentType="application/soap+xml" + class="org.apache.axis2.transport.http.SOAPMessageFormatter"/> + </messageFormatters> + + <!-- ================================================= --> + <!-- Message Builders --> + <!-- ================================================= --> + <!--Following content type to builder mapping can be used to implement support for different message --> + <!--formats in Axis2. These message formats are expected to be resolved based on the content type. --> + <messageBuilders> + <messageBuilder contentType="application/xml" + class="org.apache.axis2.builder.ApplicationXMLBuilder"/> + <messageBuilder contentType="application/x-www-form-urlencoded" + class="org.apache.axis2.builder.XFormURLEncodedBuilder"/> + <messageBuilder contentType="multipart/form-data" + class="org.apache.axis2.builder.MultipartFormDataBuilder"/> + </messageBuilders> + + <!-- ================================================= --> + <!-- Transport Ins --> + <!-- ================================================= --> + + <transportReceiver name="http" + class="org.apache.axis2.transport.http.AxisServletListener"> + <parameter name="port">8080</parameter> + </transportReceiver> + + <transportReceiver name="https" + class="org.apache.axis2.transport.http.AxisServletListener"> + <parameter name="port">8443</parameter> + </transportReceiver> + + <!-- ================================================= --> + <!-- Transport Outs --> + <!-- ================================================= --> + + <transportSender name="http" + class="org.apache.axis2.transport.http.CommonsHTTPTransportSender"> + <parameter name="PROTOCOL">HTTP/1.1</parameter> + <parameter name="Transfer-Encoding">chunked</parameter> + + <!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages --> + <!-- <parameter name="OmitSOAP12Action">true</parameter> --> + </transportSender> + + <transportSender name="https" + class="org.apache.axis2.transport.http.CommonsHTTPTransportSender"> + <parameter name="PROTOCOL">HTTP/1.1</parameter> + <parameter name="Transfer-Encoding">chunked</parameter> + </transportSender> + + <!-- Please enable this if you need the java transport --> + <!-- <transportSender name="java" + class="org.apache.axis2.transport.java.JavaTransportSender"/> --> + + <!-- ================================================= --> + <!-- Global Modules --> + <!-- ================================================= --> + <!-- Comment this to disable Addressing --> + + + + + <!--Configuring module , providing parameters for modules whether they refer or not--> + <!--<moduleConfig name="addressing">--> + <!--<parameter name="addressingPara">N/A</parameter>--> + <!--</moduleConfig>--> + + <!-- ================================================= --> + <!-- Clustering --> + <!-- ================================================= --> + <!-- + To enable clustering for this node, set the value of "enable" attribute of the "clustering" + element to "true". The initialization of a node in the cluster is handled by the class + corresponding to the "class" attribute of the "clustering" element. It is also responsible for + getting this node to join the cluster. + --> + <clustering class="org.apache.axis2.clustering.tribes.TribesClusteringAgent" enable="false"> + + <!-- + This parameter indicates whether the cluster has to be automatically initalized + when the AxisConfiguration is built. If set to "true" the initialization will not be + done at that stage, and some other party will have to explictly initialize the cluster. + --> + <parameter name="AvoidInitiation">true</parameter> + + <!-- + The membership scheme used in this setup. The only values supported at the moment are + "multicast" and "wka" + + 1. multicast - membership is automatically discovered using multicasting + 2. wka - Well-Known Address based multicasting. Membership is discovered with the help + of one or more nodes running at a Well-Known Address. New members joining a + cluster will first connect to a well-known node, register with the well-known node + and get the membership list from it. When new members join, one of the well-known + nodes will notify the others in the group. When a member leaves the cluster or + is deemed to have left the cluster, it will be detected by the Group Membership + Service (GMS) using a TCP ping mechanism. + --> + <parameter name="membershipScheme">multicast</parameter> + + <!-- + The clustering domain/group. Nodes in the same group will belong to the same multicast + domain. There will not be interference between nodes in different groups. + --> + <parameter name="domain">wso2.carbon.domain</parameter> + + <!-- + When a Web service request is received, and processed, before the response is sent to the + client, should we update the states of all members in the cluster? If the value of + this parameter is set to "true", the response to the client will be sent only after + all the members have been updated. Obviously, this can be time consuming. In some cases, + such this overhead may not be acceptable, in which case the value of this parameter + should be set to "false" + --> + <parameter name="synchronizeAll">true</parameter> + + <!-- + The maximum number of times we need to retry to send a message to a particular node + before giving up and considering that node to be faulty + --> + <parameter name="maxRetries">10</parameter> + + <!-- The multicast address to be used --> + <parameter name="mcastAddress">228.0.0.4</parameter> + + <!-- The multicast port to be used --> + <parameter name="mcastPort">45564</parameter> + + <!-- The frequency of sending membership multicast messages (in ms) --> + <parameter name="mcastFrequency">500</parameter> + + <!-- The time interval within which if a member does not respond, the member will be + deemed to have left the group (in ms) + --> + <parameter name="memberDropTime">3000</parameter> + + <!-- + The IP address of the network interface to which the multicasting has to be bound to. + Multicasting would be done using this interface. + --> + <parameter name="mcastBindAddress">127.0.0.1</parameter> + + <!-- The host name or IP address of this member --> + <parameter name="localMemberHost">127.0.0.1</parameter> + + <!-- + The TCP port used by this member. This is the port through which other nodes will + contact this member + --> + <parameter name="localMemberPort">4000</parameter> + + <!-- + Preserve message ordering. This will be done according to sender order. + --> + <parameter name="preserveMessageOrder">true</parameter> + + <!-- + Maintain atmost-once message processing semantics + --> + <parameter name="atmostOnceMessageSemantics">true</parameter> + + <!-- + Properties specific to this member + --> + <parameter name="properties"> + <property name="backendServerURL" value="https://${hostName}:${httpsPort}/services/"/> + <property name="mgtConsoleURL" value="https://${hostName}:${httpsPort}/"/> + </parameter> + + <!-- + The list of static or well-known members. These entries will only be valid if the + "membershipScheme" above is set to "wka" + --> + <members> + <member> + <hostName>127.0.0.1</hostName> + <port>4000</port> + </member> + <member> + <hostName>127.0.0.1</hostName> + <port>4001</port> + </member> + </members> + + <!-- + Enable the groupManagement entry if you need to run this node as a cluster manager. + Multiple application domains with different GroupManagementAgent implementations + can be defined in this section. + --> + <groupManagement enable="false"> + <applicationDomain name="apache.axis2.application.domain" + description="Axis2 group" + agent="org.apache.axis2.clustering.management.DefaultGroupManagementAgent"/> + </groupManagement> + + <!-- + This interface is responsible for handling management of a specific node in the cluster + The "enable" attribute indicates whether Node management has been enabled + --> + <nodeManager class="org.apache.axis2.clustering.management.DefaultNodeManager" + enable="true"/> + + <!-- + This interface is responsible for handling state replication. The property changes in + the Axis2 context hierarchy in this node, are propagated to all other nodes in the cluster. + + The "excludes" patterns can be used to specify the prefixes (e.g. local_*) or + suffixes (e.g. *_local) of the properties to be excluded from replication. The pattern + "*" indicates that all properties in a particular context should not be replicated. + + The "enable" attribute indicates whether context replication has been enabled + --> + <stateManager class="org.apache.axis2.clustering.state.DefaultStateManager" + enable="true"> + <replication> + <defaults> + <exclude name="local_*"/> + <exclude name="LOCAL_*"/> + </defaults> + <context class="org.apache.axis2.context.ConfigurationContext"> + <exclude name="local_*"/> + </context> + <context class="org.apache.axis2.context.ServiceGroupContext"> + <exclude name="local_*"/> + </context> + <context class="org.apache.axis2.context.ServiceContext"> + <exclude name="local_*"/> + </context> + </replication> + </stateManager> + </clustering> + + <!-- ================================================= --> + <!-- Phases --> + <!-- ================================================= --> + <phaseOrder type="InFlow"> + <!-- System predefined phases --> + <phase name="Transport"> + <handler name="RequestURIBasedDispatcher" + class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"> + <order phase="Transport"/> + </handler> + <handler name="SOAPActionBasedDispatcher" + class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"> + <order phase="Transport"/> + </handler> + </phase> + <phase name="Addressing"> + <handler name="AddressingBasedDispatcher" + class="org.apache.axis2.dispatchers.AddressingBasedDispatcher"> + <order phase="Addressing"/> + </handler> + </phase> + <phase name="Security"/> + <phase name="PreDispatch"/> + <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase"> + <handler name="RequestURIBasedDispatcher" + class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/> + <handler name="SOAPActionBasedDispatcher" + class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/> + <handler name="RequestURIOperationDispatcher" + class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/> + <handler name="SOAPMessageBodyBasedDispatcher" + class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/> + <handler name="HTTPLocationBasedDispatcher" + class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/> + + </phase> + <phase name="RMPhase"/> + <!-- System predefined phases --> + <!-- After Postdispatch phase module author or service author can add any phase he want --> + <phase name="OperationInPhase"> + </phase> + <phase name="soapmonitorPhase"/> + </phaseOrder> + <phaseOrder type="OutFlow"> + <!-- user can add his own phases to this area --> + <phase name="soapmonitorPhase"/> + <phase name="OperationOutPhase"/> + <!--system predefined phase--> + <!--these phase will run irrespective of the service--> + <phase name="RMPhase"/> + <phase name="PolicyDetermination"/> + <phase name="MessageOut"/> + <phase name="Security"/> + </phaseOrder> + <phaseOrder type="InFaultFlow"> + <phase name="Addressing"> + <handler name="AddressingBasedDispatcher" + class="org.apache.axis2.dispatchers.AddressingBasedDispatcher"> + <order phase="Addressing"/> + </handler> + </phase> + <phase name="Security"/> + <phase name="PreDispatch"/> + <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase"> + <handler name="RequestURIBasedDispatcher" + class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/> + <handler name="SOAPActionBasedDispatcher" + class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/> + <handler name="RequestURIOperationDispatcher" + class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/> + <handler name="SOAPMessageBodyBasedDispatcher" + class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/> + <handler name="HTTPLocationBasedDispatcher" + class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/> + </phase> + <phase name="RMPhase"/> + <!-- user can add his own phases to this area --> + <phase name="OperationInFaultPhase"/> + <phase name="soapmonitorPhase"/> + </phaseOrder> + <phaseOrder type="OutFaultFlow"> + <!-- user can add his own phases to this area --> + <phase name="soapmonitorPhase"/> + <phase name="OperationOutFaultPhase"/> + <phase name="RMPhase"/> + <phase name="PolicyDetermination"/> + <phase name="MessageOut"/> + <phase name="Security"/> + </phaseOrder> +</axisconfig> + Propchange: axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/axis2.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/services/SimpleService/META-INF/services.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/services/SimpleService/META-INF/services.xml?rev=1332965&view=auto ============================================================================== --- axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/services/SimpleService/META-INF/services.xml (added) +++ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/services/SimpleService/META-INF/services.xml Wed May 2 09:29:03 2012 @@ -0,0 +1,27 @@ +<?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. --> + +<serviceGroup> + <service name="SimpleService"> + <parameter name="ServiceClass">org.apache.axis2.examples.httpsservice.SimpleService + </parameter> + <operation name="helloService"> + <messageReceiver + class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /> + </operation> + <transports> + <transport>https</transport> + </transports> + </service> +</serviceGroup> \ No newline at end of file Propchange: axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/services/SimpleService/META-INF/services.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/web.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/web.xml?rev=1332965&view=auto ============================================================================== --- axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/web.xml (added) +++ axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/web.xml Wed May 2 09:29:03 2012 @@ -0,0 +1,29 @@ +<?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. --> + +<!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> + <servlet> + <servlet-name>AxisServlet</servlet-name> + <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class> + <load-on-startup>1</load-on-startup> + </servlet> + <servlet-mapping> + <servlet-name>AxisServlet</servlet-name> + <url-pattern>/services/*</url-pattern> + </servlet-mapping> +</web-app> \ No newline at end of file Propchange: axis/axis2/java/transports/trunk/modules/samples/https-sample/httpsService/src/main/webapp/WEB-INF/web.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: axis/axis2/java/transports/trunk/modules/samples/https-sample/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/modules/samples/https-sample/pom.xml?rev=1332965&view=auto ============================================================================== --- axis/axis2/java/transports/trunk/modules/samples/https-sample/pom.xml (added) +++ axis/axis2/java/transports/trunk/modules/samples/https-sample/pom.xml Wed May 2 09:29:03 2012 @@ -0,0 +1,64 @@ +<!-- ~ 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. --> + +<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>org.apache.axis2.examples</groupId> + <artifactId>https-sample</artifactId> + <version>1.7.0-SNAPSHOT</version> + <packaging>pom</packaging> + <name>Apache Axis2 Transport-HTTPS sample</name> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <source>1.5</source> + <target>1.5</target> + </configuration> + </plugin> + </plugins> + </build> + <dependencies> + <dependency> + <groupId>org.apache.axis2</groupId> + <artifactId>axis2-adb</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.axis2</groupId> + <artifactId>axis2-transport-http</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.axis2</groupId> + <artifactId>axis2-transport-local</artifactId> + <version>${project.version}</version> + </dependency> + </dependencies> + <repositories> + <repository> + <id>apache.snapshots</id> + <name>Apache Snapshot Repository</name> + <url>http://repository.apache.org/snapshots</url> + <releases> + <enabled>false</enabled> + </releases> + </repository> + </repositories> + <modules> + <module>httpsService</module> + <module>httpsClient</module> + </modules> +</project> Propchange: axis/axis2/java/transports/trunk/modules/samples/https-sample/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Modified: axis/axis2/java/transports/trunk/pom.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/transports/trunk/pom.xml?rev=1332965&r1=1332964&r2=1332965&view=diff ============================================================================== --- axis/axis2/java/transports/trunk/pom.xml (original) +++ axis/axis2/java/transports/trunk/pom.xml Wed May 2 09:29:03 2012 @@ -157,6 +157,7 @@ <module>modules/sms</module> <module>modules/testkit</module> <module>modules/all</module> + <module>modules/samples/https-sample</module> </modules> <profiles>