[Building Sakai] How to send a email?

Steve Swinsburg steve.swinsburg at gmail.com
Mon Nov 30 21:32:56 PST 2009


Yes, a Maven compile will *not* pick this up as JWS files are compiled at runtime, ie when you first request the web service WSDL.

You need to fix whatever is broken as per the error report:
>> Line 57, column 8:  'class' or 'interface' expected
>> Line 62, column 13:  <identifier> expected


What parts did you add to SakaiScript.jws?

cheers,
Steve


On 01/12/2009, at 3:54 PM, Sam Chow wrote:

> 
> I try to clean install again , but this error still occur :<
> 
> 
> 
> Steve Swinsburg-3 wrote:
>> 
>> JWS files compile at runtime and whenever the file changes, so you'll get
>> that if something is up with the recompile. It tells you what the issue is
>> though:
>> 
>> Line 57, column 8:  'class' or 'interface' expected
>> Line 62, column 13:  &lt;identifier&gt; expected
>> 
>> cheers,
>> Steve
>> 
>> On 01/12/2009, at 2:51 PM, Sam Chow wrote:
>> 
>>> 
>>> There are eror occur: 
>>> 
>>> 2009-12-01 11:48:02,468 ERROR http-8080-Processor22
>>> org.apache.axis.handlers.JWSHandler - Exception:
>>> AxisFault
>>> faultCode: {http://xml.apache.org/axis/}Server.compileError
>>> faultSubcode: 
>>> faultString: Error while compiling: 
>>> G:\Tomcat\webapps\sakai-axis\WEB-INF\jwsClasses\SakaiScript.java
>>> faultActor: 
>>> faultNode: 
>>> faultDetail: 
>>> 	{}Errors:Error compiling
>>> G:\Tomcat\webapps\sakai-axis\WEB-INF\jwsClasses\SakaiScript.java:
>>> Line 57, column 8:  'class' or 'interface' expected
>>> Line 62, column 13:  &lt;identifier&gt; expected
>>> Line 0, column 0: 
>>> 2 errors
>>> 
>>> 
>>> Error while compiling: 
>>> G:\Tomcat\webapps\sakai-axis\WEB-INF\jwsClasses\SakaiScript.java
>>> 	at org.apache.axis.handlers.JWSHandler.setupService(JWSHandler.java:232)
>>> 	at org.apache.axis.handlers.JWSHandler.invoke(JWSHandler.java:72)
>>> 	at
>>> org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
>>> 	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
>>> 	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
>>> 	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:249)
>>> 	at
>>> org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
>>> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
>>> 	at
>>> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
>>> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
>>> 	at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
>>> 	at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>>> 	at
>>> org.sakaiproject.util.RemoteHostFilter.doFilter(RemoteHostFilter.java:188)
>>> 	at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>>> 	at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>>> 	at org.sakaiproject.util.RequestFilter.doFilter(RequestFilter.java:616)
>>> 	at
>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
>>> 	at
>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
>>> 	at
>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>>> 	at
>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
>>> 	at
>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>> 	at
>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
>>> 	at
>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
>>> 	at
>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
>>> 	at
>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
>>> 	at
>>> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
>>> 	at
>>> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
>>> 	at
>>> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
>>> 	at
>>> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
>>> 	at java.lang.Thread.run(Thread.java:595)
>>> 
>>> 
>>> 
>>> Steve Swinsburg-3 wrote:
>>>> 
>>>> If you want to do it from the Web Services, you'll need to use the
>>>> ComponentManager:
>>>> 
>>>> import org.sakaiproject.component.cover.ComponentManager;
>>>> import org.sakaiproject.email.api.EmailService;
>>>> 
>>>> Create an instance var and class constructor:
>>>> 
>>>> private EmailService emailService;
>>>> public SakaiScript() {
>>>> 	emailService = (EmailService) ComponentManager.get(EmailService());
>>>> }
>>>> 
>>>> use it:
>>>> emailService.xxx();
>>>> 
>>>> I'm (eventually) going to convert the web services over to use the other
>>>> API's like this so we can get rid of the static covers.
>>>> 
>>>> cheers,
>>>> Steve
>>>> 
>>>> On 01/12/2009, at 1:43 PM, Sam Chow wrote:
>>>> 
>>>>> 
>>>>> Thanks Steve.
>>>>> 
>>>>> It is very helpful, but I cannot find the component.xml in web
>>>>> services.
>>>>> 
>>>>> Thanks
>>>>> 
>>>>> 
>>>>> Steve Swinsburg-3 wrote:
>>>>>> 
>>>>>> Hi Sam,
>>>>>> 
>>>>>> Once you have the dependecy setup in your POM, then you can inject the
>>>>>> API
>>>>>> via your Spring config and a Javabean style setter in your
>>>>>> implementation. 
>>>>>> 
>>>>>> in components.xml
>>>>>> 
>>>>>> <bean id="yourbean">
>>>>>> ...
>>>>>> <property name="emailService"><ref
>>>>>> bean="org.sakaiproject.email.api.EmailService"/></property>
>>>>>> ...
>>>>>> </bean>
>>>>>> 
>>>>>> in your impl:
>>>>>> private EmailService emailService;
>>>>>> public void setEmailService(EmailService emailService) {
>>>>>> 	this.emailService = emailService;
>>>>>> }
>>>>>> 
>>>>>> then do something like:
>>>>>> emailService.sendToUsers(receivers, getHeaders(user.getEmail(),
>>>>>> subject),
>>>>>> formatMessage(subject, message));
>>>>>> to actually send the email.
>>>>>> 
>>>>>> If any of that is foreign, take a look at the code generated in a
>>>>>> sample
>>>>>> app via the Sakai App Builder in Eclipse, or take a look at the
>>>>>> Programmers Cafe docs in Confluence, there are some code examples. 
>>>>>> 
>>>>>> Make sure you have the SMTP properties setup in sakai.properties too.
>>>>>> 
>>>>>> cheers,
>>>>>> Steve
>>>>>> 
>>>>>> 
>>>>>> On 30/11/2009, at 3:21 PM, Sam Chow wrote:
>>>>>> 
>>>>>>> 
>>>>>>> Dear David, 
>>>>>>> 
>>>>>>> Thanks for your information. Actually, i am still not successful to
>>>>>>> use
>>>>>>> to
>>>>>>> api to send email.
>>>>>>> 
>>>>>>> Is it possible if i copy some code from mailtool.processSendEmail to
>>>>>>> web
>>>>>>> service for this my purpose?
>>>>>>> 
>>>>>>> Thanks.
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> David Horwitz wrote:
>>>>>>>> 
>>>>>>>> Hi Sam,
>>>>>>>> 
>>>>>>>> You need to add the email API to your maven dependencies - seing you
>>>>>>>> need to do this I presume your using Sakai 2.5 or earlier so add
>>>>>>>> this
>>>>>>>> to
>>>>>>>> the dependencies of your maven pom.xml:
>>>>>>>> 
>>>>>>>> <dependency>
>>>>>>>> <groupId>org.sakaiproject</grouipId>
>>>>>>>> <artifactId>sakai-email-api<artifactId>
>>>>>>>> </dependency>
>>>>>>>> 
>>>>>>>> If your using Sakai 2.6 or later the dependency you need is to the
>>>>>>>> kernel api (group= org.sakaiproject.kernel artifact= kernel-api)
>>>>>>>> 
>>>>>>>> David
>>>>>>>> 
>>>>>>>> On 11/27/2009 08:25 AM, Sam Chow wrote:
>>>>>>>>> Dear David,
>>>>>>>>> 
>>>>>>>>> it will have compilation error if i  import
>>>>>>>>> org.sakaiproject.email.api.EmailService;
>>>>>>>>> 
>>>>>>>>> What should i do, thanks!
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> David Horwitz wrote:
>>>>>>>>> 
>>>>>>>>>> Hi Sam,
>>>>>>>>>> 
>>>>>>>>>> see the EmailService:
>>>>>>>>>> http://source.sakaiproject.org/release/kernel/1.1.0-beta03/apidocs/org/sakaiproject/email/api/EmailService.html
>>>>>>>>>> 
>>>>>>>>>> D
>>>>>>>>>> 
>>>>>>>>>> On 11/24/2009 10:16 AM, Sam Chow wrote:
>>>>>>>>>> 
>>>>>>>>>>> Dear All,
>>>>>>>>>>> 
>>>>>>>>>>> I have already written a script to upload some user information
>>>>>>>>>>> to
>>>>>>>>>>> sakai
>>>>>>>>>>> with a random password. Now, i want to email the information
>>>>>>>>>>> message
>>>>>>>>>>> to
>>>>>>>>>>> the user automatcally after his informaiton is inserted to the
>>>>>>>>>>> Sakai.
>>>>>>>>>>> Is
>>>>>>>>>>> there any email api i can call. 
>>>>>>>>>>> 
>>>>>>>>>>> Many Thanks!
>>>>>>>>>>> 
>>>>>>>>>>> Sam
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> 
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> sakai-dev mailing list
>>>>>>>>>>> sakai-dev at collab.sakaiproject.org
>>>>>>>>>>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>>>>>>>>>> 
>>>>>>>>>>> TO UNSUBSCRIBE: send email to
>>>>>>>>>>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>>>>>>>>>>> "unsubscribe"
>>>>>>>>>>> 
>>>>>>>>>> _______________________________________________
>>>>>>>>>> sakai-dev mailing list
>>>>>>>>>> sakai-dev at collab.sakaiproject.org
>>>>>>>>>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>>>>>>>>> 
>>>>>>>>>> TO UNSUBSCRIBE: send email to
>>>>>>>>>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>>>>>>>>>> "unsubscribe"
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> _______________________________________________
>>>>>>>> sakai-dev mailing list
>>>>>>>> sakai-dev at collab.sakaiproject.org
>>>>>>>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>>>>>>> 
>>>>>>>> TO UNSUBSCRIBE: send email to
>>>>>>>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>>>>>>>> "unsubscribe"
>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>>> -- 
>>>>>>> View this message in context:
>>>>>>> http://old.nabble.com/-Building-Sakai--How-to-send-a-email--tp26492029p26569429.html
>>>>>>> Sent from the Sakai - Development mailing list archive at Nabble.com.
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> sakai-dev mailing list
>>>>>>> sakai-dev at collab.sakaiproject.org
>>>>>>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>>>>>> 
>>>>>>> TO UNSUBSCRIBE: send email to
>>>>>>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>>>>>>> "unsubscribe"
>>>>>> 
>>>>>> 
>>>>>> _______________________________________________
>>>>>> sakai-dev mailing list
>>>>>> sakai-dev at collab.sakaiproject.org
>>>>>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>>>>> 
>>>>>> TO UNSUBSCRIBE: send email to
>>>>>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>>>>>> "unsubscribe"
>>>>>> 
>>>>> 
>>>>> -- 
>>>>> View this message in context:
>>>>> http://old.nabble.com/-Building-Sakai--How-to-send-a-email--tp26492029p26585678.html
>>>>> Sent from the Sakai - Development mailing list archive at Nabble.com.
>>>>> 
>>>>> _______________________________________________
>>>>> sakai-dev mailing list
>>>>> sakai-dev at collab.sakaiproject.org
>>>>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>>>> 
>>>>> TO UNSUBSCRIBE: send email to
>>>>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>>>>> "unsubscribe"
>>>> 
>>>> _______________________________________________
>>>> sakai-dev mailing list
>>>> sakai-dev at collab.sakaiproject.org
>>>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>>> 
>>>> TO UNSUBSCRIBE: send email to
>>>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>>>> "unsubscribe"
>>>> 
>>>> 
>>> 
>>> -- 
>>> View this message in context:
>>> http://old.nabble.com/-Building-Sakai--How-to-send-a-email--tp26492029p26585956.html
>>> Sent from the Sakai - Development mailing list archive at Nabble.com.
>>> 
>>> _______________________________________________
>>> sakai-dev mailing list
>>> sakai-dev at collab.sakaiproject.org
>>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>>> 
>>> TO UNSUBSCRIBE: send email to
>>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>>> "unsubscribe"
>> 
>> _______________________________________________
>> sakai-dev mailing list
>> sakai-dev at collab.sakaiproject.org
>> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
>> 
>> TO UNSUBSCRIBE: send email to
>> sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of
>> "unsubscribe"
>> 
>> 
> 
> -- 
> View this message in context: http://old.nabble.com/-Building-Sakai--How-to-send-a-email--tp26492029p26586662.html
> Sent from the Sakai - Development mailing list archive at Nabble.com.
> 
> _______________________________________________
> sakai-dev mailing list
> sakai-dev at collab.sakaiproject.org
> http://collab.sakaiproject.org/mailman/listinfo/sakai-dev
> 
> TO UNSUBSCRIBE: send email to sakai-dev-unsubscribe at collab.sakaiproject.org with a subject of "unsubscribe"



More information about the sakai-dev mailing list