1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.ws.client.support;
18
19 import java.io.IOException;
20
21 import org.springframework.beans.factory.InitializingBean;
22 import org.springframework.util.Assert;
23 import org.springframework.ws.WebServiceMessageFactory;
24 import org.springframework.ws.transport.WebServiceConnection;
25 import org.springframework.ws.transport.WebServiceMessageSender;
26 import org.springframework.xml.transform.TransformerObjectSupport;
27
28
29
30
31
32
33
34
35
36
37
38 public abstract class WebServiceAccessor extends TransformerObjectSupport implements InitializingBean {
39
40 private WebServiceMessageFactory messageFactory;
41
42 private WebServiceMessageSender[] messageSenders;
43
44
45 public WebServiceMessageFactory getMessageFactory() {
46 return messageFactory;
47 }
48
49
50 public void setMessageFactory(WebServiceMessageFactory messageFactory) {
51 this.messageFactory = messageFactory;
52 }
53
54
55 public WebServiceMessageSender[] getMessageSenders() {
56 return messageSenders;
57 }
58
59
60
61
62
63
64
65
66 public void setMessageSender(WebServiceMessageSender messageSender) {
67 Assert.notNull(messageSender, "'messageSender' must not be null");
68 messageSenders = new WebServiceMessageSender[]{messageSender};
69 }
70
71
72
73
74
75
76
77
78 public void setMessageSenders(WebServiceMessageSender[] messageSenders) {
79 Assert.notEmpty(messageSenders, "'messageSenders' must not be empty");
80 this.messageSenders = messageSenders;
81 }
82
83 public void afterPropertiesSet() {
84 Assert.notNull(getMessageFactory(), "Property 'messageFactory' is required");
85 Assert.notEmpty(getMessageSenders(), "Property 'messageSenders' is required");
86 }
87
88
89
90
91
92
93
94
95
96
97
98
99
100 protected WebServiceConnection createConnection(String uri) throws IOException {
101 Assert.notEmpty(getMessageSenders(), "Property 'messageSenders' is required");
102 WebServiceMessageSender[] messageSenders = getMessageSenders();
103 for (int i = 0; i < messageSenders.length; i++) {
104 if (messageSenders[i].supports(uri)) {
105 if (logger.isDebugEnabled()) {
106 logger.debug("Opening connection to [" + uri + "] using [" + messageSenders[i] + "]");
107 }
108 return messageSenders[i].createConnection(uri);
109 }
110 }
111 throw new IllegalArgumentException("Could not resolve [" + uri + "] to a WebServiceMessageSender");
112 }
113
114 }