I want to integrate jBPM with Struts2. jBPM and Struts2 seems to be pretty simple but when it comes to integration I am having a problem. The problem is that jBPM and Struts2 both are running in different context. How am i suppose to get the request and response object of Struts2 context in jBPM context. Can any one provide me with a good design on that how should I integrate. Any help would be highly appreciated.Thanks!
You should start by reading the documentation of jBPM (Chapter 18 - Integration) about integration with Spring, this way you can use an Struts2 <-> Spring <-> jBpm schema. Also you should check Activiti wich is a great and ligthweight BPM engine which integrates easily with Spring.
Related
I'm working on a webapp running on Tomcat which using spring-data to connect to a neo4j graph in embedded mode.
I would like to use neo4j server instead of the embedded mode and I am looking for some help to be sure about how to do that.
Some of my application services are quite difficult and combine, in a single transaction, the result of several cypher requests in a dto sent back to the user.
First I thought that I have to create a server unmanaged extension and I think I should follow these following steps.
- Keep my webapp with springMVC and spring security to hold and secure users sessions.
- Regroup all my transactional services in a specific jar my-app.jar
- Use Jax-RS to add a REST access point on each of my service of my-app.jar
- use something like spring restTemplate from my spring controller to call services from my-app.jar
First question : is this way of doing things is the good way ?
Second question : I have many spring injection in my services layer. How can I keep them working (how can I add dependencies in the server extension ?
Then I discovered graphAware and I wonder if I should use it instead.
And finally I just read this post http://jexp.de/blog/2014/12/spring-data-neo4j-improving-remoting-performance/ and it seems that I should use
the SpringCypherRestGraphDatabase (as explain in the bold text at the end of the article).
Well, I'm a little bit lost and I would appreciate any help to use neo4j server instead the embedded mode for my application which contain some complexe transactions.
You have a number of options here and you are on the right track with your thinking.
Option 1:
If your use cases are business-logic-heavy, and your question suggests that they are, going the unmanaged extension route is one option.
Essentially, you can then combine the most performant Java API and Cypher (if you wish) to perform your use case. I wouldn't use SDN here by the way, so you have to do your mapping manually, but is there really any mapping? Maybe you just want to execute traversals / Cypher queries for each one of your use cases.
Each use case then exposes a simple REST API, which is consumed by your Spring-powered application running Spring MVC, Spring Security, and all that. You can use the RestTemplate from Spring in your app's Controllers.
To add a twist to all that, you can use the GraphAware Framework to develop the "unmanaged extension" using Spring MVC as well. That would be my preferred option, knowing nothing about your domain/app.
Option 2:
Use the new version of SDN (v4) as Michael suggests. This allows you to run your application with annotated domain objects, Spring MVC, Security, et al. Operations (CRUD and other) are automatically translated to Cypher and sent across the wire to Neo4j running in server mode (no extensions needed). Results are then marshalled back to Java objects.
We're about to release Milestone 1 of SDN v4. It shouldn't take more than a week. That said, it is still going to be a Milestone release, thus not ready for production. A GA release is expected in May (ish).
You can already try SDN v4 yourself. Clone this repo: https://github.com/spring-projects/spring-data-neo4j, make sure you're on the 4.0 branch, and do an mvn clean install on it. Here's a sample app, built using Angular JS and Spring Boot.
Please do get in touch with feedback / questions / problems (best by email info at graphaware dot com). Cheers!
I suggest you wait a bit until SDN4 Milestone 1 comes out (developed by GraphAware) this was written from scratch for Neo4j-Server.
I am developing a dynamic web application in Eclipse.
I am using Struts2 as my framework along with Hibernate as my ORM.
I need to implement role based access control for which I found Spring Security to be ideal.
However, I am having difficulty integrating it to my project.
I need help integrating, for which any help/advice/tutorial would be humbly accepted.
I found this website to be quite useful for beginners dealing with web development technologies
I'm replacing the service tier in an existing older Struts2 project with Spring service beans developed for another project.
I'd like to just #Inject these service beans into my Action classes.
Is it required to use Struts' Spring Plugin? Or can I add Spring into my Struts web application like I would any other (ContextLoaderListener, applicationContext.xml, context:component-scan)?
Am I missing some reason why the Struts Spring plugin helps me in another way?
Many thanks!
Well you can do the most of the things what you have described in your question as Services layer is completely out of view for the S2 and Struts2 do not care how you are creating your Service layer instances and other things.
Benefits i am seeing of using Struts2-Spring plugin is to delegate creation of Struts2 related things to Spring like Action classes creation,Interceptors,Results etc.
My Suggestion is to use the plugin as you are going to use the Spring in your application so its very good and flexible as well powerful to use the power of Spring DI to create required objects needed by S2 else S2 will use its own data creation factory to create framework component.
Why wouldn't you use the Spring plugin?
It's essentially invisible, uses Spring to create your actions (including injecting other Spring beans), etc.
Guice's #Inject doesn't know anything about Spring beans, AFAIK, so you'd be naming classes manually, they'd be instantiated via normal Java/Guice mechanisms, wouldn't be injected with their own Spring dependencies (unless you did it manually, or via AOP, or whatever).
You'd also need to use non-Spring mechanisms for doing injection in testing, which is fine, but unless you provide more details regarding your usecase, I don't really see a reason to bypass the functionality the Spring plugin provides out-of-the-box.
I started with Spring and Spring ROO as job switched with no past experience in Java Development. From last 1.5 year experience doing development in Ruby on Rails. So my new company want me to work with Spring and Spring ROO no Grails/Groovy:(. As no past experience in JAVA DEVELOPMENT struggling a lot with understanding of configuration of XML and Annotation support. Although i covered basics of but Now i was looking to find a way that Spring have such support of Ajax call CRUD operations of entities or Javascript call to execute script which i get as result of remote true URL click. As Rails framework (rails.js).
Hopefuly the person who work with ROR and Spring ROO may be best person to answer my question. Thanks in Advance.
To implement CRUD operations, I may suggest you to use REST service. It is easy to create with Spring MVC.
Spring blog
Good example
Another fast example
And ofcourse Spring documentation
This is copied part of my previous answer :
My advice to you would be to download the spring source(eclipse like IDE) :
http://www.springsource.org/springsource-tool-suite-download
After downloading it you can simply go to File > New > Spring Template Project > Spring MVC project
After you're done with creating project, the working template project(structured project, example controller file, example view, pom.xml etc.) will be created for you. You can just build it and deploy it to tomcat or whatever.
Btw. check this out :
https://github.com/SpringSource/spring-mvc-showcase/blob/master/MasteringSpringMVC3.pdf?raw=true
It is enough to get you started well off with Spring MVC.
I once had the same problem to you (I used to develope Groovy/Grails, then switch to Spring MVC). Unfortunately, I don't think there's an easy way to make what you ask in Spring. Spring doesn't have much productivity-enhanced functions,but it enables flexibility instead.
In short, you will be able to do Ajax, but with a lot more manual configuration (pure html/javascript-jQuery and java code) - like in Vacuum answer.
Jquery ajax might be the best solution you can find though it only help you send the the CRUD requests to server side. You must write java code at server to process those requests.
I'm a newer java/Java EE application programmer :
The aim of my question that i found a tutorial or a refcard talking about integration of struts 2, spring 3, hibernate 3 under a Java EE project( the database doesn't matter and the eclipse version too) wich explain the role of each configuration file( such as web.xml, application-context.xml, struts.xml) and what you have to put inside. i hope that it gives the process that porsuit a request from the User Interface to the data layer and the role of the configuration files.
Note sure what exactly is your question but here is a quick answer to your question
Struts2 will be used as MVC (Model View Controller). i.e the framework will be used to create UI and will be responsible to take user inputs and showing the output to the user in a very smile words.
Spring in itself start from DI to Web-services, AOP,Talking to Hibernate and many more, it all depedends upon what all features you want to use. in S2 the typical use of Spring is DI.You can also use Spring in your service layer
Hibernate is a part of ORM layer and will be responsible for interacting with your underlying database.you can use Spring to interact with your ORM layer or can develop independent ORM layer using hibernate.Struts2 has nothing to do with hibernate.
here is a quick tutorial for the same struts-2-spring-jpa. You can find more tutorial by simple googling