Apache Axis
Encyclopedia
Apache Axis is an open source
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 code
Source 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.

public class Calculator
{
public int add(int i1, int i2)
{
return i1 + i2;
}

public int subtract(int i1, int i2)
{
return i1 - i2;
}
}

JWS Wesdg a
Apache Tomcat
Apache Tomcat
Apache 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 access
JWS Web service is accessible using the URL http://localhost:8080/axis/Calculator.jws . If you are running a custom configuration of Apache Tomcat
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 deployment
Software 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
  • RPC
    Remote procedure call
    In 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 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....

     - re-design/write of Axis
  • Java Web Services Development Pack
    Java Web Services Development Pack
    The 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 CXF
    Apache CXF
    Apache 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 XFire
    Codehaus XFire
    is 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....

     & Celtix
    Celtix
    Celtix 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 Services
    XML Interface for Network Services
    XML 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 Framework
    Web Services Invocation Framework
    The 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 Glue
    WebMethods Glue
    webMethods 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

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK