1
1
package ru .javaops .masterjava .webapp ;
2
2
3
3
import lombok .extern .slf4j .Slf4j ;
4
+ import ru .javaops .masterjava .service .mail .util .MailUtils ;
5
+ import ru .javaops .masterjava .service .mail .util .MailUtils .MailObject ;
4
6
5
7
import javax .jms .*;
6
8
import javax .naming .InitialContext ;
7
9
import javax .servlet .ServletConfig ;
8
10
import javax .servlet .ServletException ;
11
+ import javax .servlet .annotation .MultipartConfig ;
9
12
import javax .servlet .annotation .WebServlet ;
10
13
import javax .servlet .http .HttpServlet ;
11
14
import javax .servlet .http .HttpServletRequest ;
12
15
import javax .servlet .http .HttpServletResponse ;
16
+ import javax .servlet .http .Part ;
13
17
import java .io .IOException ;
14
18
import java .lang .IllegalStateException ;
15
19
16
20
@ WebServlet ("/sendJms" )
17
21
@ Slf4j
22
+ @ MultipartConfig
18
23
public class JmsSendServlet extends HttpServlet {
19
24
private Connection connection ;
20
25
private Session session ;
@@ -46,16 +51,22 @@ public void destroy() {
46
51
}
47
52
48
53
@ Override
49
- protected void doPost (HttpServletRequest req , HttpServletResponse resp ) throws ServletException , IOException {
54
+ protected void doPost (HttpServletRequest req , HttpServletResponse resp ) throws IOException {
50
55
String result ;
51
56
try {
52
57
log .info ("Start sending" );
53
58
req .setCharacterEncoding ("UTF-8" );
54
59
resp .setCharacterEncoding ("UTF-8" );
55
- String users = req .getParameter ("users" );
56
- String subject = req .getParameter ("subject" );
57
- String body = req .getParameter ("body" );
58
- result = sendJms (users , subject , body );
60
+ Part filePart = req .getPart ("attach" );
61
+
62
+ MailObject mailObject = MailUtils .getMailObject (
63
+ req .getParameter ("users" ),
64
+ req .getParameter ("subject" ),
65
+ req .getParameter ("body" ),
66
+ filePart == null ? null : filePart .getSubmittedFileName (),
67
+ filePart == null ? null : filePart .getInputStream ());
68
+
69
+ result = sendJms (mailObject );
59
70
log .info ("Processing finished with result: {}" , result );
60
71
} catch (Exception e ) {
61
72
log .error ("Processing failed" , e );
@@ -64,10 +75,10 @@ protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws S
64
75
resp .getWriter ().write (result );
65
76
}
66
77
67
- private synchronized String sendJms (String users , String subject , String body ) throws JMSException {
68
- TextMessage testMessage = session .createTextMessage ();
69
- testMessage . setText ( subject );
70
- producer .send (testMessage );
78
+ private synchronized String sendJms (MailObject mailObject ) throws JMSException {
79
+ ObjectMessage om = session .createObjectMessage ();
80
+ om . setObject ( mailObject );
81
+ producer .send (om );
71
82
return "Successfully sent JMS message" ;
72
83
}
73
84
}
0 commit comments