Apache Axis
Encyclopedia
Apache Axis is an open source
, XML
based Web service
framework. It consists of a Java
and a C++
implementation of the SOAP server, and various utilities and APIs for generating and deploying Web service applications. Using Apache Axis, developers can create interoperable, distributed computing applications. Axis is developed under the auspices of the Apache Software Foundation
.
Another way is to use custom deployment. Custom deployment enables you to customize resources that should be exposed as Web service.
See also Apache Axis2
.
and not compiled class files.
The following example is taken from http://ws.apache.org/axis/java/user-guide.html#PublishingWebServicesWithAxis.
It will expose methods add and subtract of class Calculator.
JWS Wesdg a
JWS Web service access
JWS Web service is accessible using the URLhttp://localhost:8080/axis/Calculator.jws . If you are running a custom configuration of Apache Tomcat
or a different container, the URL might be different.
requires a specific deployment descriptor called WSDD (Web Service Deployment Descriptor) syntax. It can be used to specify resources that should be exposed as Web services. Current version (1.3) supports
Automated generation of WSDL
When a Web service is exposed using Axis it will generate a WSDL
file automatically when accessing the Web service URL with ?WSDL appended to it.
The steps necessary are:
For more information on the individual steps go directly to the tutorial.
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
, XML
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
based Web service
Web service
A Web service is a method of communication between two electronic devices over the web.The W3C defines a "Web service" as "a software system designed to support interoperable machine-to-machine interaction over a network". It has an interface described in a machine-processable format...
framework. It consists of a Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
and a C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
implementation of the SOAP server, and various utilities and APIs for generating and deploying Web service applications. Using Apache Axis, developers can create interoperable, distributed computing applications. Axis is developed under the auspices of the Apache Software Foundation
Apache Software Foundation
The Apache Software Foundation is a non-profit corporation to support Apache software projects, including the Apache HTTP Server. The ASF was formed from the Apache Group and incorporated in Delaware, U.S., in June 1999.The Apache Software Foundation is a decentralized community of developers...
.
Axis for Java
When using the Java version of Axis there are two ways to expose Java code as Web service. The easiest one is to use Axis native JWS (Java Web Service) files.Another way is to use custom deployment. Custom deployment enables you to customize resources that should be exposed as Web service.
See also Apache Axis2
Apache Axis2
Apache Axis2 is a core engine for Web services. It is a complete re-design and re-write of the widely used Apache Axis SOAP stack. Implementations of Axis2 are available in Java and C....
.
JWS Web service creation
JWS files contain Java class source code that should be exposed as Web service. The main difference between an ordinary java file and jws file is the file extension. Another difference is that jws files are deployed as source codeSource code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...
and not compiled class files.
The following example is taken from http://ws.apache.org/axis/java/user-guide.html#PublishingWebServicesWithAxis.
It will expose methods add and subtract of class Calculator.
JWS Wesdg a
Apache TomcatApache TomcatApache Tomcat is an open source web server and servlet container developed by the Apache Software Foundation...
container. In the case that you are using another web container, custom WAR archive creation will be required .
JWS Web service accessJWS Web service is accessible using the URL
Apache Tomcat
Apache Tomcat is an open source web server and servlet container developed by the Apache Software Foundation...
or a different container, the URL might be different.
Custom deployed Web service
Custom Web service deploymentSoftware deployment
Software deployment is all of the activities that make a software system available for use.The general deployment process consists of several interrelated activities with possible transitions between them. These activities can occur at the producer site or at the consumer site or both...
requires a specific deployment descriptor called WSDD (Web Service Deployment Descriptor) syntax. It can be used to specify resources that should be exposed as Web services. Current version (1.3) supports
- RPCRemote procedure callIn computer science, a remote procedure call is an inter-process communication that allows a computer program to cause a subroutine or procedure to execute in another address space without the programmer explicitly coding the details for this remote interaction...
services - EJB - stateless (Enterprise Java Bean)
Automated generation of WSDL
When a Web service is exposed using Axis it will generate a WSDL
Web Services Description Language
The Web Services Description Language is an XML-based language that is used for describing the functionality offered by a Web service. A WSDL description of a web service provides a machine-readable description of how the service can be called, what parameters it expects and what data structures...
file automatically when accessing the Web service URL with ?WSDL appended to it.
Axis for C++
An example for implementing and deploying a simple web-service with the C++ version of Axis can be found in the Axis-CPP Tutorial (link in the Reference section below).The steps necessary are:
- Create the wsdl file
- Generate client and server stubs using wsdl2ws
- Provide the server side web service implementation (e.g. the add method of the calculator service)
- Build the server side code and update the generated deploy.wsdd with the .dll path
- Deploy the binaries to the directory specified in the wsdd
- Build client
- Run and enjoy...
For more information on the individual steps go directly to the tutorial.
Related technologies
- Apache Axis2Apache Axis2Apache Axis2 is a core engine for Web services. It is a complete re-design and re-write of the widely used Apache Axis SOAP stack. Implementations of Axis2 are available in Java and C....
- re-design/write of Axis - Java Web Services Development PackJava Web Services Development PackThe Java Web Services Development Pack is a free software development kit for developing Web Services, Web applications and Java applications with the newest technologies for Java....
- web services framework - Apache CXFApache CXFApache CXF is an open-source, fully featured Web services framework. It originated as the combination of two open-source projects: Celtix developed by IONA Technologies and XFire developed by a team hosted at Codehaus. These two projects were combined by people working together at the Apache...
- other Apache web services framework (old XFireCodehaus XFireis a Java SOAP framework for development and consumption of web services.Unlike earlier similar products, such as Apache Axis 1.x that use in-memory tree models for XML, XFire uses StAX resulting in better performance..Apache Axis2 also uses StAX....
& CeltixCeltixCeltix delivers a Java Enterprise Service Bus runtime and set of APIs that make it easy to add transports, message formats, and security features...
) - XML Interface for Network ServicesXML Interface for Network ServicesXML Interface for Network Services is an open source technology for definition and implementation of internet applications, which enforces a specification-oriented approach.-Specification-oriented approach:...
- RPC/web services framework - Web Services Invocation FrameworkWeb Services Invocation FrameworkThe Web Services Invocation Framework supports a simple Java API for invoking Web services, no matter how or where the services are provided...
- Java API for invoking Web services - webMethods GlueWebMethods GluewebMethods Glue is an enterprise web services platform from webMethods to provide web services/SOAP capabilities to existing Java and C/C++ applications....
- commercial web services enabling product - AlchemySOAP - open source C++ web services framework
External links
- Apache AXIS Homepage at the Apache Software Foundation
- Apache AXIS C++ Homepage at the Apache Software Foundation
- http://ws.apache.org/axis/cpp/arch/End-2-End-Sample.html Axis-C++ tutorial at the Apache Software Foundation
- Apache Axis2/Java at the Apache Software Foundation
- Apache Axis2/C at the Apache Software Foundation
- Stylus Studio Tools for Apache AXIS, see also Stylus Studio