001: /*
002: * Copyright 2001-2004 The Apache Software Foundation.
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016:
017: package samples.swa;
018:
019: import javax.activation.DataHandler;
020: import javax.activation.FileDataSource;
021: import javax.mail.internet.MimeBodyPart;
022: import javax.mail.internet.MimeMultipart;
023:
024: /**
025: * Class Tester
026: *
027: * @version %I%, %G%
028: */
029: public class Tester {
030:
031: /** Field HEADER_CONTENT_TYPE */
032: public static final String HEADER_CONTENT_TYPE = "Content-Type";
033:
034: /** Field HEADER_CONTENT_TRANSFER_ENCODING */
035: public static final String HEADER_CONTENT_TRANSFER_ENCODING = "Content-Transfer-Encoding";
036:
037: /** Field address */
038: private static final java.lang.String address = "http://localhost:8080/axis/services/SwaHttp";
039:
040: /**
041: * Method main
042: *
043: * @param args
044: * @throws Exception
045: */
046: public static void main(String[] args) throws Exception {
047:
048: /*
049: * Start to prepare service call. Once this is done, several
050: * calls can be made on the port (see below)
051: *
052: * Fist: get the service locator. This implements the functionality
053: * to get a client stub (aka port).
054: */
055: SwaServiceLocator service = new SwaServiceLocator();
056:
057: /*
058: * Here we use an Axis specific call that allows to override the
059: * port address (service endpoint address) with an own URL. Comes
060: * in handy for testing.
061: */
062: java.net.URL endpoint;
063: try {
064: endpoint = new java.net.URL(address);
065: } catch (java.net.MalformedURLException e) {
066: throw new javax.xml.rpc.ServiceException(e);
067: }
068:
069: SwaPort port = (SwaPort) service.getSwaHttp(endpoint);
070:
071: /*
072: * At this point all preparations are done. Using the port we can
073: * now perform as many calls as necessary.
074: */
075:
076: /*
077: * Prepare the Multipart attachment. It consists of several data files. The
078: * multipart container is of type "multipart/mixed"
079: */
080: MimeMultipart mpRoot = new MimeMultipart();
081: System.out.println("MimeMultipart content: "
082: + mpRoot.getContentType());
083: DataHandler dh = new DataHandler(new FileDataSource("duke.gif"));
084: addBodyPart(mpRoot, dh);
085: dh = new DataHandler(new FileDataSource("pivots.jpg"));
086: addBodyPart(mpRoot, dh);
087: // perform call
088: port.swaSend("AppName", mpRoot);
089: }
090:
091: /**
092: * Method addBodyPart
093: *
094: * @param mp
095: * @param dh
096: */
097: private static void addBodyPart(MimeMultipart mp, DataHandler dh) {
098: MimeBodyPart messageBodyPart = new MimeBodyPart();
099: try {
100: messageBodyPart.setDataHandler(dh);
101: String contentType = dh.getContentType();
102: if ((contentType == null)
103: || (contentType.trim().length() == 0)) {
104: contentType = "application/octet-stream";
105: }
106: System.out.println("Content type: " + contentType);
107: messageBodyPart.setHeader(HEADER_CONTENT_TYPE, contentType);
108: messageBodyPart.setHeader(HEADER_CONTENT_TRANSFER_ENCODING,
109: "binary"); // Safe and fastest for anything other than mail
110: mp.addBodyPart(messageBodyPart);
111: } catch (javax.mail.MessagingException e) {
112: }
113: }
114: }
|