{"componentChunkName":"component---node-modules-gatsby-theme-medium-to-own-blog-src-templates-blog-post-js","path":"/spring-and-hessian-how-cool!/","result":{"data":{"site":{"siteMetadata":{"siteUrl":"https://javame.netlify.app","githubUrl":"https://github.com/aterreno/blog"}},"mdx":{"fields":{"slug":"/spring-and-hessian-how-cool!/"},"excerpt":"I’ve tried today to expose some of our services in our application service layer. All those classes are simple POJOs, autowired with Spring…","timeToRead":1,"frontmatter":{"title":"Spring & Hessian, how cool!","description":"","categories":[],"date":"March 31, 2009","canonical_link":"https://javame.netlify.app//spring-hessian-how-cool-b45af3d22f24"},"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Spring & Hessian, how cool!\",\n  \"description\": \"\",\n  \"date\": \"2009-03-31T00:00:00.000Z\",\n  \"categories\": [],\n  \"published\": true,\n  \"canonical_link\": \"https://javame.netlify.app//spring-hessian-how-cool-b45af3d22f24\",\n  \"redirect_from\": [\"/spring-hessian-how-cool-b45af3d22f24\"]\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"I\\u2019ve tried today to expose some of our services in our application service layer.\"), mdx(\"p\", null, \"All those classes are simple POJOs, autowired with Spring.\"), mdx(\"p\", null, \"I\\u2019ve chosen \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://hessian.caucho.com/\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"Hessian\"), \" for few reasons:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"I never liked xml, soap, etc\\u2026\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"we need web services over http (so no RMI)\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"it\\u2019s very fast\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"we might need different type of clients connecting to the application (Hessian apparently supports not only plain old Java but also JavaFX, Flex, almost every decent popular programming language)\")), mdx(\"p\", null, \"Well the modification to the code (I\\u2019ve changed a couple of xml files) took less than an hour.\"), mdx(\"p\", null, \"You can find the instructions \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://static.springframework.org/spring/docs/2.5.x/reference/remoting.html#remoting-caucho-protocols\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"here\"), \", there\\u2019s nothing else I can add to that document, it just works.\"), mdx(\"p\", null, \"Many people says that Java is death or will die soon but what Spring gives \\u201Cto the masses\\u201D is still incredibly valuable and I found always very quick to implement a change in the code or make a big redesign of the codebase.\"), mdx(\"p\", null, \"Lately I\\u2019ve been impressed by the \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://wheelersoftware.com/articles/spring-autowiring-annotations.html\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"autowiring\"), \" features and the \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"http://www.springsource.org/javaconfig\",\n    \"target\": \"_blank\",\n    \"rel\": \"nofollow noopener noreferrer\"\n  }), \"java config\"), \" new stuff.\"), mdx(\"p\", null, \"Have a look, java is perhaps struggling but still not death.\"));\n}\n;\nMDXContent.isMDXComponent = true;"},"allWebMentionEntry":{"nodes":[]}},"pageContext":{"id":"184c6a63-4210-56e8-932f-35c5de02bca5","previous":{"id":"f9504f70-7327-5786-a63a-7ff428280951","fields":{"slug":"/do-you-really-need-an-rdms/","published":true},"frontmatter":{"redirect_from":["/do-you-really-need-an-rdms-ac5af5f67a40"],"redirect_to":null,"title":"Do you really need an RDMS?"}},"next":{"id":"df97882b-9420-5717-93a5-1195da1000e3","fields":{"slug":"/fest-and-mockito-aka-how-to-test-quickly-and-easily-your-swing-classes/","published":true},"frontmatter":{"redirect_from":["/fest-mockito-aka-how-to-test-quickly-and-easily-your-swing-classes-8cc68648d458"],"redirect_to":null,"title":"Fest & Mockito, aka how to test quickly and easily your swing classes"}},"permalink":"https://javame.netlify.app/spring-and-hessian-how-cool!/","themeOptions":{"plugins":[],"config":{"title":"Antonio Terreno","description":"Antonio Terreno's blog archive","shortBio":"","bio":"Principal Consultant at Equal Experts","author":"Antonio Terreno","githubUrl":"https://github.com/aterreno/blog","siteUrl":"https://javame.netlify.app/","social":{"twitter":"javame","medium":"","facebook":"","github":"aterreno","linkedin":"antonioterreno","instagram":"tritonitri"},"goatCounterCode":null}}}},"staticQueryHashes":["4131332129","645483741"]}