background image

37

  

try

 {

38
39

  Session session = connection.createSession(

false

, Session.AUTO_ACKNOWLEDGE);

40
41

  Message message = session.createMessage();

42
43

  

//这个属性用来标示请求是否是 WSDL 请求,后面的 Listener 会根据它来调用具体

的 WebService。

44
45

  message.setBooleanProperty("isWsdl", 

true

);

46
47

  message.setJMSReplyTo(session.createTemporaryQueue());

48
49

  session.createProducer(queue).send(message);

50
51

  

//等待回复消息,它里面包含 Service 返回的 WSDL,这里使用了一个选择器。

52
53

  String selector = String.format("JMSCorrelationID='%s'", message.getJMSMessageID());

54
55

    MessageConsumer   consumer   =  session.createConsumer(message.getJMSReplyTo(), 

selector);

56
57

  TextMessage replyMessage = (TextMessage) consumer.receive();

58
59

  

//将 WSDL 返回给客户端。

60
61

  resp.getWriter().write(replyMessage.getText());

62
63

  } 

catch

 (Exception e) {

64
65

  e.printStackTrace();

66
67

  }

68
69

  }

70
71

  }

72
73

  

protected

 

void

 doPost(HttpServletRequest req, HttpServletResponse resp) {

74
75

  

try

 {

76